1.變量的定義和使用
shell腳本中定義變量名不加$符,中間不能有空格和標點符號,可以有下劃線,不能有shell關鍵字(關鍵字可以使用help查看)
使用一個定義過的變量,只要在變量名前面加美元符號即可,如:
your_name="zangsanfeng"
echo $your_name 或者 echo ${your_name}
{ }可加可不加,加花括號是為了幫助解釋器識別變量的邊界,如:
for name in tom amy alice tony; do
echo "this is ${name }"
done
2.變量的只讀性
需用readonly關鍵字申明,如:
name="zhangsanfeng"
readonly name
設置只讀后,變量值不能被重新賦值
3.變量的刪除
需用unset關鍵字申明,如:
name="wangwu"
unset name
注:若name變量被申明為只讀,則不能被unset掉
1.參數實例
如執行 ./test.bash 11 22 33表示向test.bash腳本傳遞了三個參數,分別為11,22,33,在腳本中獲取的時候分別用$1,$2,$3獲取,$0指代的是執行的文件名
2.幾個特殊字符用來處理參數:
參數處理說明
$#傳遞到腳本的參數個數
$*以一個單字符串顯示所有向腳本傳遞的參數。
如"$*"用「"」括起來的情況、以"$1 $2 … $n"的形式輸出所有參數。
$$腳本運行的當前進程ID號
$!后臺運行的最后一個進程的ID號
$@與$*相同,但是使用時加引號,并在引號中返回每個參數。
如"$@"用「"」括起來的情況、以"$1" "$2" … "$n" 的形式輸出所有參數。
$-顯示Shell使用的當前選項,與set命令功能相同。
$?顯示最后命令的退出狀態。0表示沒有錯誤,其他任何值表明有錯誤。
$* 與 $@ 區別:
相同點:都是引用所有參數。
不同點:只有在雙引號中體現出來。假設在腳本運行時寫了三個參數 11、22、33,,則 " * " 等價于 "11 22 33"(傳遞了一個參數),而 "@" 等價于 "11" "22" "33"(傳遞了三個參數)
for i in "$*"; do
echo $i
done
for i in "$@"; do
echo $i
done
輸出的結果是:
11 22 33
11
22
33
1.數組的定義
bash只支持一維數組,不支持多維數組,數組下標亦是從0開始,元素用空格分開,如
my_array=("haha" 11 22 "fff" 98)
也可以使用下標定義數組,如:
my_array[0]=value0;
my_array[1]=value1;
my_array[2]=value2;
2.數組的讀取
${my_array[index]}
3.獲取數組全部元素
${my_array[*]} 或者 ${my_array[@]}
4.獲取數組的長度
${#my_array[*]} 或者 ${#my_array[@]}
提交申請后,顧問老師會電話與您溝通安排學習