一、數學運算
1、expr命令
此命令可以在命令行執行數學運算操作。
由于此命令使用時過于麻煩,所以不推薦使用。
2、方括號和雙圓括號
$[ EXPRESSION ]
$(( EXPRESSION ))
在之前的實例中已經出現過方括號的表達式:$[$a+$b]。
3、let命令
4、算術運算符
x+=y:相當于x=x+y
x-=y:相當于x=x-y
x*=y:相當于x=x*y
x/=y:相當于x=x/y
x++: 相當于x=x+1
x–: 相當于x=x-1
二、字符串連接
變量引用后方直接跟字串時,變量名要加{}。
三、條件測試
條件測試的表達式可以使用以下三種格式:
[ expression ]:注意中括號與表達式之間有空格;
[[ expression ]]:注意中括號與表達之間有空格;
test expression:上面的兩種格式其實都是test命令的其它格式。
test命令可以進行3種類型的條件判斷:整數測試、字符串測試、文件測試。
1、整數測試
-eq:測試兩個整數是否相等;
-ne:測試兩個整數是否不等,不等為真,相等為假;
-gt:測試一個數是否大于一個數,大于為真,否則為假;
-lt:測試一個數是否小于一個數,小于為真,否則為假;
-ge:測試一個數是否大于一個數,大于等于為真,否則為假;
-le:測試一個數是否大于一個數,小于等于為真,否則為假;
實例:如果兩個參數相等則顯示"equal",否則顯示"different"。
2、字符測試
==:測試是否相等,等為真,不等為假;
!=:測試是否不等,不等為真,等為假;
=~:模式配置;
-z string:測試指定字符串是否為空,空為真不空為假
-n string:測試指定字符串是否為空,空則假不空為真
-s string:測試指定字符串是否不空,不空為真,空則為假
實例:
上面是一個使用"-z"的例子,如果改為-n的話則如下圖所示:
注:變量比較時最好加上引號(單雙都可以),否則如果變量為空的話,會報錯。
3、文件測試
-a FILE:測試FILE存在為真,否則為假;
-e FILE:測試FILE是否存在,存在為真,否則為假;
-l/-L FILE:軟鏈接文件;
-b:塊設備;
-c:字符設備;
-S:套接字文件;
-p:命名管道;
-s:非空文件為真;
-f FILE:測試FILE是否為普通文件;
-d FILE:測試指定路徑是否為目錄;
-r FILE:測試文件對當前用戶是否可讀;
-w FILE:測試文件對當前用戶是否可寫;
-x FILE:測試文件對當前用戶是否可執行;
-N FILE:修改文件時間比訪問時間新則為真;
內容重定向到文件中,但文件還沒有被打開過的情況
file1 -nt file2:file1比file2新則為真;
file1 -ot file2:file1比file2舊則為真。
實例:如果/test存在則將其重命名為/new-test,否則創建這個目錄:
實例:給定一個參數,首先判斷此參數是否存在,如果存在判斷是否為文件,若為文件確保其有執行權限:
驗證:
4、組合測試條件
在多個條件間實現邏輯運算
-a:與關系 [ condition1 -a condition2 ]
-o:或關系 [ condition1 -o condition2 ]
!:非關系 [ ! condition ] 或 [ -not condition ]
四、命令間的邏輯關系
&&:邏輯與,只有當左邊的條件為真時才會執行右邊的語句;
||:邏輯或,當左邊的條件為假時才會執行右邊的語句。
上面的實例也可以使用邏輯與來完成:
原創文章,作者:petmaster,如若轉載,請注明出處:http://www.www58058.com/10690