生活随笔
收集整理的這篇文章主要介紹了
shell测试判断
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
測試
測試結(jié)構(gòu)
測試命令一般有2種方式:
test
test expression
[ ] bash [ expression ] 這種方式一般與if case while配合使用
整數(shù)比較運(yùn)算符
運(yùn)算符描述示例 num1 -eq num2 等于 [ 3 -eq $mynum ] num1 -ne num2 不等于 [ 3 -ne $mynum ] num1 -lt num2 小于 [ 3 -lt $mynum ] num1 -le num2 小于或等于 [ 3 -le $mynum ] num1 -gt num2 大于 [ 3 -gt $mynum ] num1 -ge num2 大于或等于 [ 3 -ge $mynum ]
字符串運(yùn)算符
運(yùn)算符描述示例 -z string 如果 string 長度為零,則為真 [ -z “$myvar” ] -n string 如果 string 長度非零,則為真 [ -n “$myvar” ] string1 = string2 如果 string1 與 string2 相同,則為真 [ “$myvar” = “one two three” ] string1 != string2 如果 string1 與 string2 不同,則為真 [ “$myvar” != “one two three” ] string 判斷字符串是否為空 [ $str ]
文件操作符
運(yùn)算符描述示例 -e filename 如果 filename 存在,則為真 [ -e /var/log/syslog ] -d filename 如果 filename 為目錄,則為真 [ -d /tmp/mydir ] -f filename 如果 filename 為常規(guī)文件,則為真 [ -f /usr/bin/grep ] -L filename 如果 filename 為符號(hào)鏈接,則為真 [ -L /usr/bin/grep ] -r filename 如果 filename 可讀,則為真 [ -r /var/log/syslog ] -w filename 如果 filename 可寫,則為真 [ -w /var/mytmp.txt ] -x filename 如果 filename 可執(zhí)行,則為真 [ -L /usr/bin/grep ] filename1 -nt filename2 如果 filename1 比 filename2 新,則為真 [ /tmp/install/etc/services -nt /etc/services ] filename1 -ot filename2 如果 filename1 比 filename2 舊,則為真 [ /boot/bzImage -ot arch/i386/boot/bzImage ]
邏輯運(yùn)算符
運(yùn)算符描述示例 ! expression not expr1 -a expr2 and expr1 -o expr2 or
判斷
簡單if結(jié)構(gòu)
if [
"$aa " =
"$bb " -o
"$cc " =
"$dd " ] ;
then echo "yes"
fi
if [
"$aa " =
"$bb " -o
"$cc " =
"$dd " ]
then echo "yes"
fi
exit命令
exit status
參數(shù)被保存在$?變量中
if/else結(jié)構(gòu)
if [
"$aa " =
"$bb " -o
"$cc " =
"$dd " ];
then echo "yes"
else echo "no"
fi
if/else嵌套
if/elif/else嵌套
if [
"$aa " =
"$bb " -o
"$cc " =
"$dd " ]
then echo "yes"
elif [
"$aa " =
3 ]
echo "no"
fi
case結(jié)構(gòu)
echo 'Input a number between 1 to 4' echo 'Your number is:\c' read aNum
case $aNum in 1 )
echo 'You select 1' ;;
2 )
echo 'You select 2' ;;
3 )
echo 'You select 3' ;;
4 )
echo 'You select 4' ;;*)
echo 'You do not select a number between 1 to 4' ;;
esac
運(yùn)算符
算數(shù)運(yùn)算符
運(yùn)算符說明舉例 + 加法 expr $a + $b 結(jié)果為 30。 - 減法 expr $a - $b 結(jié)果為 10。 * 乘法 expr $a \* $b 結(jié)果為 200。 / 除法 expr $b / $a 結(jié)果為 2。 % 取余 expr $b % $a 結(jié)果為 0。 ** 取冪 5**3 = 賦值 a=$b 將把變量 b 的值賦給 a。 == 相等。 用于比較兩個(gè)數(shù)字,相同則返回 true。 [ a == b ] 返回 false。 != 不相等。用于比較兩個(gè)數(shù)字,不相同則返回 true。 [ a ! = b ] 返回 true。
算數(shù)符合運(yùn)算符
運(yùn)算符說明舉例 += 加法 expr $a + $b 結(jié)果為 30。 -= 減法 expr $a - $b 結(jié)果為 10。 *= 乘法 expr $a \* $b 結(jié)果為 200。 /= 除法 expr $b / $a 結(jié)果為 2。 %= 取余 expr $b % $a 結(jié)果為 0。 **= 取冪 5**3
位運(yùn)算符
運(yùn)算符說明舉例 << 左移 value=4>>2 4左移2位,value值為16 >> 右移 value=8<<2 8右移2位,value值為2 & 按位與 value=8&&4 8按位與4,value值為0 | 按位或 value=8 \~ 按位非 value=~8 按位非8,value值為-9 ^ 按位異或 value=10^3 10按位異或3,value值為9
自增自減運(yùn)算符
i++運(yùn)算后加1,i–運(yùn)算后減1 ++i運(yùn)算前加1,–i運(yùn)算前減1
數(shù)字常量
Linux Shell默認(rèn)將數(shù)字作為十進(jìn)制進(jìn)行處理,當(dāng)使用0前綴表示八進(jìn)制,0x前綴表示十六進(jìn)制,同時(shí)可以使用num#形式
let "num=40"
let "num=027"
let "num=0x35" let "num=2#11111000"
let "num=8#2735"
let "num=16#ffee"
總結(jié)
以上是生活随笔 為你收集整理的shell测试判断 的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔 推薦給好友。