日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

shell测试判断

發(fā)布時(shí)間:2024/4/13 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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)算符描述示例
! expressionnot
expr1 -a expr2and
expr1 -o expr2or

判斷

簡單if結(jié)構(gòu)

#then不另起行 if [ "$aa" = "$bb" -o "$cc" = "$dd" ] ; then echo "yes" fi #then 另起行 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 aNumcase $aNum in1) 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ò),歡迎將生活随笔推薦給好友。