字符串運算符
運算符 說明
string 判斷指定的字符串是否為空
string1 = string 2 判斷兩個字符串string1 和string2 是否相等
string1 !=string2 判斷兩個字符串string1 和string2是否不等
-n string 判斷string是否為非空串
-z string 怕暖string是否為空串
常見證書運算符
number1 -eq number2 比較number1是否等于number2.如果相等,測試結(jié)果為0
number1 -ne number2 比較number1和number2 是否相等,如果不相等,測試結(jié)果為0
number1 -gt number2 比較number1是否大于number2 。如果number1 大于number2,測試結(jié)果為0
number1 -lt number2 測試number1 是否小于number2 。如果number1 小于number2 ,測試結(jié)果為0
number 1 -ge number2 測試number1 是否大于等于numb二。如果大于等于,測試結(jié)果為0
number1 -le number2 測試number1是否小于等于number2 ,如果小于等于,測試結(jié)果為0
常用文件操作符
-a file 文件是否存在,如果文件file存在,則結(jié)果為0;
-b file 文件是否存在,且為塊。如果文件file是一個存在的塊文件,則結(jié)果為0
-c file文件是否存在,且為字符文件。如果file是一個已經(jīng)存在的字符文件,則結(jié)果為0
-d file文件是否存在,且為目錄。如果文件file是一個已經(jīng)存在的目錄,則結(jié)果為0
-e file 等同 -a操作符
-s file 文件的長度是否大于0或者文件為非空文件。如果file是一個非空文件,則結(jié)果為0
-f file 文件存在,并且為常規(guī)文件。如果file是一個已經(jīng)存在的常規(guī)文件。則結(jié)果為0
-w file 文件是否存在且可寫。如果文件file是一個可寫文件則結(jié)果為0
-L file 文件是否存在,并且為符號鏈接。如果文件file是一個已經(jīng)存在的符號鏈接,則結(jié)果為0
-u file 文件是否設(shè)置suid位,如果文件file已經(jīng)設(shè)置了suid位,則結(jié)果為0
-r file 文件是否存在,并且是可讀。如果文件file是一個已經(jīng)存在的可讀文件,則結(jié)果為0
-x file 文件是否存在,并且為可執(zhí)行,如果文件file是一個已經(jīng)盡的可執(zhí)行,則結(jié)果為0
邏輯操作符
!expression 邏輯非,條件表達式expression的值為假,則該操作符的運算結(jié)果為真
expression1 -a expression2 邏輯與,條件表達式expression1和expression2的值都是真時,整個表達式的值才是真
expression1 -o expression2 邏輯或,條件表達式expression1或者expression2的值有一個為真時,整個表達式的值就為真
[root@shell1-com ~]# a=35
[root@shell1-com ~]# test "$a" -gt 20 -a "$a" -lt 60
[root@shell1-com ~]# echo $?
0
[root@shell1-com ~]# [ -e new.sh -a -w new.sh ]
[root@shell1-com ~]# echo $?
0
符合算術(shù)運算符
+= 將左邊的數(shù)加到右邊的數(shù),然后再將和賦值給左邊的變量
-=將左邊的數(shù)減去右邊的數(shù),然后再將和賦值給左邊的變量
*=將左邊的數(shù)乘以右邊的數(shù),然后再將和賦值給左邊的變量
/=將左邊的數(shù)除以右邊的數(shù),然后再將和賦值給左邊的變量
%=將左邊的數(shù)對右邊的數(shù)求模之后,然后再將和賦值給左邊的變量
常用位運算
<<左移 4<<2,將4左移2位,結(jié)果為16
>>右移8>>2,將8右移2位,結(jié)果為2
&按位與8&&4,將8和4進行按位與運算,結(jié)果為0
|按位或8|4,將8和4進行按位或運算,結(jié)果為12
~按位非~8,將8進行按位非運算,結(jié)果為-9
^按位異或10^6 將10和6進行按二進制位異或運算,結(jié)果為12
僅供參考