shell中if test使用詳解
更新時間:2023年06月08日 10:00:50 作者:獵人在吃肉
本文主要介紹了shell中if test使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
1、數(shù)值
1.1、數(shù)值大小比較
參數(shù) | 說明 |
---|---|
-eq | 等于則為真 |
-ne | 不等于則為真 |
-gt | 大于則為真 |
-ge | 大于等于則為真 |
-lt | 小于則為真 |
-le | 小于等于則為真 |
示例1:
#!/bin/bash num1=100 num2=200 if test $[num1] -eq $[num2] then ? ? echo '兩個數(shù)相等!' else ? ? echo '兩個數(shù)不相等!' fi
1.2、數(shù)據(jù)值運(yùn)算
示例1:
#!/bin/bash a=5 b=6 result=$[a+b] # 注意等號兩邊不能有空格 echo "result 為: $result"
2、字符串
2.1、示例1:字符串是否相等
參數(shù) | 說明 |
---|---|
= | 等于則為真 |
!= | 不相等則為真 |
-z 字符串 | 字符串的長度為零則為真 |
-n 字符串 | 字符串的長度不為零則為真 |
注意:字符串比較時,變量最好使用引號,如果變量都不為空,則沒有任何問題,如果變量為空,則會報錯。
示例
#!/bin/bash num1="ru1noob" num2="runoob" if test $num1 = $num2 then ? ? echo '兩個字符串相等!' else ? ? echo '兩個字符串不相等!' fi
2.2、示例2:字符串為空
#!/bin/bash str="" str2="aaa" if test -z $str then ? ? echo '字符str為空!' else ? ? echo '字符str值不為空' fi if test -z $str2 then ? ? echo '字符str2為空!' else ? ? echo '字符str2值不為空' fi
3、文件判斷
參數(shù) | 說明 |
---|---|
-e 文件名 | 如果文件存在則為真 |
-r 文件名 | 如果文件存在且可讀則為真 |
-w 文件名 | 如果文件存在且可寫則為真 |
-x 文件名 | 如果文件存在且可執(zhí)行則為真 |
-s 文件名 | 如果文件存在且至少有一個字符則為真 |
-d 文件名 | 如果文件存在且為目錄則為真 |
-f 文件名 | 如果文件存在且為普通文件則為真 |
-c 文件名 | 如果文件存在且為字符型特殊文件則為真 |
-b 文件名 | 如果文件存在且為塊特殊文件則為真 |
示例:
#!/bin/bash fileName1="/cygdrive/c/Users/admin/Desktop/sh學(xué)習(xí)/demo1-1.sh" if test -e $fileName1 then ? ? echo '文件已存在!' else ? ? echo '文件不存在!' fi
4、邏輯運(yùn)算
參數(shù) | 說明 |
---|---|
-a | 與,并且 |
-o | 或 |
! | 非 |
其優(yōu)先級為: ! 最高, -a 次之, -o 最低。
示例1:-a 使用
#!/bin/bash str="aa" str2="bb" if test -n "$str" -a -n "$str2" then ? ? echo 'str 和 str2 都有值!' else ? ? echo 'str 、 str2 至少有一個為空' fi
示例2:-a 、-o 使用
登錄時,對用戶名和密碼進(jìn)行驗證:
#!/bin/bash read -p "請輸入用戶名和密碼:" username pwd echo "username=$username" echo "pwd=$pwd" if test -z "$username" -o -z "$pwd" then ? ? echo '用戶名和密碼均不能為空' ? ? exit 2 else ? ? ? ? echo '用戶名和密碼 非空驗證通過' ? ? fi if test "$username" = "admin" -a "$pwd" = "123" then ? ? echo '登錄成功' else ? ? echo '用戶名或密碼不正確' ? ? exit 2 fi
5、if elif else
1)數(shù)值
#!/bin/bash #提示用戶輸入分?jǐn)?shù) read -p "請輸入你的分?jǐn)?shù):" score #進(jìn)行判斷 if [ "$score" -ge 90 -a "$score" -le 100 ] then echo "優(yōu)秀" elif [ "$score" -ge 80 -a "$score" -lt 90 ] then echo "良好" elif [ "$score" -ge 70 -a "$score" -lt 80 ] then echo "一般" elif [ "$score" -ge 60 -a "$score" -lt 70 ] then echo "及格" else echo "西西睡把" fi
2)文件
#!/bin/bash #提示用戶輸入 read -p "請輸入內(nèi)容:" con if [ -z "$con" ] then ?? ?echo "為空" elif [ -d "$con" ] then ?? ?echo "是目錄" elif [ -f "$con" ] then ?? ?echo "是文件" else ?? ?echo "錯誤" fi
到此這篇關(guān)于shell中if test使用詳解的文章就介紹到這了,更多相關(guān)shell if test內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
CentOS 6.0 啟動時出現(xiàn)fstab錯誤時的修復(fù)方法
下面小編就為大家?guī)硪黄狢entOS 6.0 啟動時出現(xiàn)fstab錯誤時的修復(fù)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-03-03