单/双中括号与测试条件
測試命令
tesst
[]內(nèi)置命令
[[]]bash中的關(guān)鍵字
單中括號
格式[#express1#op#express2#]
注意:
其中#代表括號不能省略
不能匹配模式
變量引用應(yīng)用雙引號括起,尤其當變量引用有空格時
與或非形式-a –o -not
常量應(yīng)用單/雙引號括起
整數(shù)比較時,< == ...需用反斜號轉(zhuǎn)義,相當于-lt -eq ...
雙中括號
格式[[#pattern1#op#pattern2#]]
注意:
其中#代表括號不能省略
可用于模式匹配,支持正則表達式
變量引用最好用雙引號括起,匹配的模式中的單雙引號都代表符號自身
與或非形式&& || !
整數(shù)比較時,< == ...需用反斜號轉(zhuǎn)義,相當于-lt -eq ...
算術(shù)表達
let var_name=算術(shù)表達式
let var_name+=valuelet不能省略
let var_name++let不能省略
var_name=$[算術(shù)表達式]算術(shù)表達式空格較隨意
var_name=$((算術(shù)表達式))算術(shù)表達式空格較隨意
var_name=${var_name:-value}var_name非空保留原值;var_name空賦值value
測試條件
布爾運算:與&&或||非!
組合條件測試:與-a或-o非-not
二元整數(shù)測試:num1 op num2
-eq等于 -ne不等于
-le小于等于 -ge大于等于 -lt小于 -gt大于
雙目字符測試:str1 op str2
==等于 !=或<>不等于 >大于 <小于
=~左側(cè)是字符串,右側(cè)是一個模式,判斷左側(cè)的字符串能否被右側(cè)的模式所匹配,通常只在[[]]中使用,模式中可以使用行首、行尾錨定符,但是模式不要加引號
單目字符測試:
-n str不空為真,空為假
-z str空為真,不空為假
單目文件測試op /path/to/somefile
-e文件是否存在 -a同前 -f普通文件 -d目錄
-b存在且塊設(shè)備 -c存在且字符設(shè)備 -h/-L存在且符號鏈接
-p存在且管道 -S存在且套接字 -s存在且不為空
-r存在且有讀權(quán)限 -w存在且有寫權(quán)限 -x存在且執(zhí)行權(quán)限
雙目文件測試file1 op file2
-ntfile1比file2新
-otfile1比file2老
-effile1與file2是否指向同一個文件,包括軟硬鏈接
轉(zhuǎn)載于:https://www.cnblogs.com/hesper/p/8901774.html
總結(jié)
以上是生活随笔為你收集整理的单/双中括号与测试条件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [转]locate命令的使用
- 下一篇: 背包问题(动态规划)