shell指令碼語法及結構
shbang行
shbang行是指令碼的第一行,通知核心使用哪種shell去執行指令碼;
#!/bin/csh
注釋注釋油乙個符號#後跟一些描述性的說明,注釋掉的語句將不執行操作;
# this is a comment
萬用字元shell中有些字元的意義比較特殊,它們被稱作是shell元字元或萬用字元。如:
*、?和常用語檔名擴充套件;!是歷史命令符;<、>、>>、<&和|符則用於標準i/o重定向管道。
為了防止這些字元被shell解釋,他們必須用反斜槓或者引號進行引用。
rm *; ls ??; cat file [1-3];!!
echo 「how are you?」
echo oh boy\!
顯示輸出
echo命令使用者向螢幕顯示輸出。
echo 「hello word \!」
區域性變數
區域性變數的作用域被限定在當前的shell中。
set ariable_name = value
set name = 「admin」
全域性變數
全域性變數又稱環境變數。
setenv
variable_name value
setenv
printer
shakespeare
提取變數值
可以使用$從變數中提取數值;
echo $variable_name
echo $name
echo $printer
讀取使用者輸入
特殊變數$《從使用者輸入中讀取一行並將它賦值給乙個變數
echo 「who are you?」
set name = $<
引數可以從命令中傳遞引數給指令碼;得到它們的值有兩種方法:位置引數和argv陣列。
% scriptname arg1 arg2 arg3 ……
使用位置:
echo $1 $2 $3
arg1賦給$1,arg2賦給$2等;
echo $*
所有引數
使用argv陣列:
echo $argv[1] $argv[2] $argv[3]
echo $argv[*]
所有引數
echo $#argv
引數個數
Shell指令碼語法
定義單變數 p name kang 使用單變數 echo p name js 輸出kang.js echo p name.js 輸出kang.js cp p name.js copy.js 命令1 命令2 如果左邊的 命令1 執行成功,那麼右邊的 命令2 才會被執行。命令1 命令2 與 相反。如果 ...
shell指令碼 語法
條件測試 test 命令test 可以測試乙個條件是否成立,如果測試條件為真,則該命令的exitstatus為0,反之,exitstatus為1。注意 命令 各引數之間應該用空格隔開,以 結尾。但是 不是命令。測試命令 d dir 如果dir存在並且是乙個目錄則為真 f file 如果file存在並...
shell指令碼語法
測試乙個條件是否成立,python ubuntu 1004 var 2 python ubuntu 1004 test var python ubuntu 1004 echo 0python ubuntu 1004 test var gt 5 python ubuntu 1004 echo 1或者 ...