字符串運算符
=:判斷兩個字符串是否相等
!=:判斷兩個字符串不等
-z:判斷字符串長度為0
【圖1】
str:判斷字符串長度是否為0葛账,字符串是否存在
if [ $string1 ]不用寫入str
【圖8】
文件運算符
-d:判斷是否是目錄文件
-f:判斷是否是普通文件
-r:判斷是否具有可讀權(quán)限
-w:判斷是否具有可寫權(quán)限
-x:判斷是否具有可執(zhí)行權(quán)限
-e:判斷文件是否存在
【圖7】
case語句
case 操作數(shù) in
模式1)
語句1
;;
模式2)
語句2
;;
模式3)
語句3
;;
*)相當(dāng)于IF語句中的else
語句4
;;
esac
注意:*是不需要""
while[條件]
do
語句
done
【圖9】
shell參數(shù)
$0:代表這個可執(zhí)行文件本身
$1:第一個參數(shù)
$2:第二個參數(shù)
$n:第n個參數(shù)
$#:參數(shù)的個數(shù)
$@:"1" "2"
$*:"1 2"
$?:它是保存最后一次運行的SHELL函數(shù)RETURN出來的值
0.是否有參數(shù)
1.判斷執(zhí)行的文件是否存在
2.如果不存在骑祟,輸出錯誤
3.如果存在,運行
for循環(huán)
for 變量 in 參數(shù)列表
do
語句
done
數(shù)組
1>定義: array=(1 2 3)
2>定義: array[0]=1
array[4]=5
數(shù)組元素訪問
${數(shù)組名[下標(biāo)]}? #加上{},表示為一個整體
訪問數(shù)組所有的元素
${array[@]}
${array[*]}
@和*的區(qū)別火鼻,例:
array=(1 2 3)
${array[@]} "1" "2" "3"
${array[*]} "1 2 3"
[圖10]
shell函數(shù)
1>函數(shù)的定義
function functionname
{
語句
}
functionname函數(shù)的使用
【保存要注釋的部分到函數(shù)里棱诱,不去調(diào)用它就可以完成多行注釋】
2>如果shell函數(shù)傳參,傳的參數(shù)大于等于10個饲宿,在函數(shù)里面取第10個數(shù)${10}
3>函數(shù)的返回值由$?去接收
$?:它是臨時保存最后一次運行的shell函數(shù)的return出來的值
如果return $value出來的值$value>255,實際上返回出來的結(jié)果應(yīng)該是$value%256
如果需要接收比255大的數(shù)厦酬,使用echo命令去保存shell函數(shù)的結(jié)果集,接收用另外一個變量value去保存結(jié)果集瘫想,然后再進行運用仗阅,實際上value保存到結(jié)果是shell函數(shù)echo后面的結(jié)果
function sum()
{
echo "===="
}
value=`sum`
printf "%s\n" "$value"