linux shell編程test語法的使用
test命令用於檢查某個條件是否成立,它可以進行數值、字符和文件三個方面的測試,其測試符和相應的功能分別如下:
一、數值測試:
-eq:等於則爲真
-ne:不等於則爲真
-gt:大於則爲真
-ge:大於等於則爲真
-lt:小於則爲真
-le:小於等於則爲真
二、字符串測試:
=:等於則爲真
!=:不相等則爲真
-z字符串:字符串長度爲0則爲真(空字符串)
-n字符串:字符串長度不爲0則爲真(非空字符串)
三、文件測試:
-e文件名:如果文件存在則爲真
-r文件名:如果文件存在且可讀則爲真
-w文件名:如果文件存在且可寫則爲真
-x文件名:如果文件存在且可執行則爲真
-s文件名:如果文件存在且至少有一個字符則爲真
-d文件名:如果文件存在且爲目錄則爲真
-f文件名:如果文件存在且爲普通文件則爲真
-c文件名:如果文件存在且爲字符型特殊文件則爲真
-b文件名:如果文件存在且爲塊特殊文件則爲真
另外,Linux還提供了與(“-a”)、或(“-o)、非(“!”)三個邏輯操作符用於將測試條件連接起來,其優先級爲:“!”最高,“-a”次之,“-o”最低。
邏輯表達式
test 1 = 1
[ 2 \< 1 ]
[[ 2 < 3 && 4 > 5 ]]
三個表達式是等效的,所有字符和邏輯運算符直接用空格分開,不能連到一起
[]中,常見的>, <需要加上轉義字符,表示字符串的大小比較;不支持邏輯運算符 || &&,需要使用-o -a代替
[[]]運算符是[]的擴充,支持>,<且不需要轉義,表示字符串的大小比較;支持邏輯運算符|| &&
同時,bash也能完成簡單的算術運算,格式如下:
$[expression]
例如:
var1=2
var2=$[var1*10+1](var1前面可能少了$符號)
則:
var2的值爲21
轉自:http://c.biancheng.net/cpp/html/1500.html