1.shell參數(shù)
$ chmod+x test.sh?為腳本設置可執(zhí)行權限
$n 拿到參數(shù)
參數(shù)個數(shù)為:$#
傳遞的參數(shù)作為一個字符串顯示:$*(假設在腳本運行時寫了三個參數(shù) 1、2、3,,則 " * " 等價于 "1 2 3"(傳遞了一個參數(shù)),而 "@" 等價于 "1" "2" "3"(傳遞了三個參數(shù))。)
2.shell數(shù)組
定義my_array=(A B"C"D)
讀取${array_name[index]}
數(shù)組的元素為: ${my_array[*]}
數(shù)組的元素為: ${my_array[@]}
數(shù)組元素個數(shù)為: ${#my_array[*]}
數(shù)組元素個數(shù)為: ${#my_array[@]}
3.表達式
`expr 2 + 2`
兩點注意:表達式和運算符之間要有空格,例如 2+2 是不對的,必須寫成 2 + 2,這與我們熟悉的大多數(shù)編程語言不一樣。完整的表達式要被 ` ` 包含,注意這個字符不是常用的單引號,在 Esc 鍵下邊。
乘號(*)前邊必須加反斜杠(\)才能實現(xiàn)乘法運算;
條件表達式要放在方括號之間,并且要有空格,例如:[$a==$b]是錯誤的,必須寫成[ $a == $b ]。
在 MAC 中 shell 的 expr 語法是:$((表達式)),此處表達式中的 "*" 不需要轉(zhuǎn)義符號 "\" 。
-eq 等于 -nq 不等于? -gt 大于 -lt 小于 -ge 大于等于 -le 小于等于
! 非 -o 或 -a 與
&& and || or
字符串運算符:= 相等 != 不等 -z 長度為0 -n 不為0 str 為空
文件測試運算符
4.echo命令
5.printf format-string [arguments...]
%-10s 指一個寬度為10個字符(-表示左對齊,沒有則表示右對齊),任何字符都會被顯示在10個字符寬的字符內(nèi),如果不足則自動以空格填充,超過也會將內(nèi)容全部顯示出來。
%-4.2f 指格式化為小數(shù),其中.2指保留2位小數(shù)。
6.test 命令
7.流程控制
條件:
if condition1
then command1
elif condition2
then command2
else commandN
fi
循環(huán):
for var in items
do commands
done
while循環(huán):
while condition
do command
done
until循環(huán)
until condition
do command
done
case 值 in
模式1)?
command1
;;
模式2)
command1
;;
esac
break命令 跳出整個循環(huán)
continue 跳出當前循環(huán)
8.函數(shù)
9./dev/null2>&1不輸出
10.文件包含?
. filename
source filename