shell中if test使用詳解
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 '兩個(gè)數(shù)相等!' else ? ? echo '兩個(gè)數(shù)不相等!' fi
1.2、數(shù)據(jù)值運(yùn)算
示例1:
#!/bin/bash a=5 b=6 result=$[a+b] # 注意等號(hào)兩邊不能有空格 echo "result 為: $result"
2、字符串
2.1、示例1:字符串是否相等
| 參數(shù) | 說明 |
|---|---|
| = | 等于則為真 |
| != | 不相等則為真 |
| -z 字符串 | 字符串的長度為零則為真 |
| -n 字符串 | 字符串的長度不為零則為真 |
注意:字符串比較時(shí),變量最好使用引號(hào),如果變量都不為空,則沒有任何問題,如果變量為空,則會(huì)報(bào)錯(cuò)。
示例
#!/bin/bash num1="ru1noob" num2="runoob" if test $num1 = $num2 then ? ? echo '兩個(gè)字符串相等!' else ? ? echo '兩個(gè)字符串不相等!' 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 文件名 | 如果文件存在且至少有一個(gè)字符則為真 |
| -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)先級(jí)為: ! 最高, -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 至少有一個(gè)為空' fi
示例2:-a 、-o 使用
登錄時(shí),對用戶名和密碼進(jìn)行驗(yà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 '用戶名和密碼 非空驗(yàn)證通過' ? ? 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 "西西睡把"
fi2)文件
#!/bin/bash #提示用戶輸入 read -p "請輸入內(nèi)容:" con if [ -z "$con" ] then ?? ?echo "為空" elif [ -d "$con" ] then ?? ?echo "是目錄" elif [ -f "$con" ] then ?? ?echo "是文件" else ?? ?echo "錯(cuò)誤" fi
到此這篇關(guān)于shell中if test使用詳解的文章就介紹到這了,更多相關(guān)shell if test內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
CentOS 6.0 啟動(dòng)時(shí)出現(xiàn)fstab錯(cuò)誤時(shí)的修復(fù)方法
下面小編就為大家?guī)硪黄狢entOS 6.0 啟動(dòng)時(shí)出現(xiàn)fstab錯(cuò)誤時(shí)的修復(fù)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-03-03

