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