shell?判斷語(yǔ)句腳本用法解析
判斷語(yǔ)句
使用test來(lái)進(jìn)行判斷
# test [選項(xiàng)] 文件 test -d /Users/zhanghe/desktop/user/shell
示例:
#如果該文件是目錄則輸出yes,否則輸出no test -d /Users/zhanghe/desktop/user/shell && echo yes || echo no
選項(xiàng)
按照文件類型判斷
-d 判斷文件是否存在,且為目錄 -e 判斷文件是否存在 -f 判斷文件是否存在,且為普通文件 -s 判斷文件是否存在,并且是否為非空文件 -b 判斷文件是否為塊設(shè)備文件 -c 判斷文件是否為字符設(shè)備文件 -g 判斷文件是否設(shè)置setgid位 -h 判斷文件是否是符號(hào)鏈接 -L 判斷文件是否為符號(hào)鏈接 -p 判斷文件是否為管道文件 -u 判斷文件是否設(shè)置setuid位 #示例 test -s stu.txt
按照權(quán)限判斷
-r 判斷文件是否存在,且是否有讀權(quán)限 -w 判斷文件是否存在,且是否有寫權(quán)限 -x 判斷文件是否存在,且是否有執(zhí)行權(quán)限 #示例 test -w stu.txt
數(shù)值比較
-eq 等于 -ne 不等于 -gt 大于 -lt 小于 -ge 大于等于 -le 小于等于 #示例 test 1 -eq 2
字符串比較
-z 判斷字符串是否為空 -n 判斷字符串是否非空 == 判斷兩個(gè)字符串是否相等 != 判斷兩個(gè)字符串是否不等 #示例 test "aa" == "ab"
邏輯判斷
-a 邏輯與 -o 邏輯或 ! 邏輯非 #示例 test "aa" == "aa" -a "ab" == "aa"
上述的test可以使用[ ]來(lái)替代
如:
[ -s stu.txt ] [ "aa" == "ab" ]
還有一種[[ 條件 ]]也可以進(jìn)行條件判斷,對(duì)于test和[]如果表達(dá)式包含特殊字符的話,需要進(jìn)行轉(zhuǎn)義,而對(duì)于[[ 條件 ]]則不需要理會(huì)特殊字符的影響,但是注意[[的后面和]]的前面都至少有一個(gè)以上的空格符才行
字符串包含
可以看到上述提供的只是基礎(chǔ)的判斷,那字符串包含如何進(jìn)行判斷呢
使用grep
if [[ -n `echo "abcd" | grep "ab"` ]] then echo "包含" fi
使用通配符
if [[ "abcd" == *ab* ]] then echo "包含" fi
以上就是shell 判斷語(yǔ)句的詳細(xì)內(nèi)容,更多關(guān)于shell 判斷語(yǔ)句的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
linux每天定時(shí)備份數(shù)據(jù)庫(kù)并刪除十天前數(shù)據(jù)詳細(xì)步驟
每天定時(shí)備份數(shù)據(jù)庫(kù)需要用到Linux的定時(shí)任務(wù),利用Linux的crondtab 命令。下面通過(guò)本文給大家?guī)?lái)了linux每天定時(shí)備份數(shù)據(jù)庫(kù)并刪除十天前數(shù)據(jù)詳細(xì)步驟,感興趣的朋友一起看看吧2018-06-06程序中獲取linux系統(tǒng)啟動(dòng)時(shí)間方法
需要在應(yīng)用程序獲取系統(tǒng)的啟動(dòng)時(shí)間,通過(guò)sysinfo中的uptime可以計(jì)算出系統(tǒng)的啟動(dòng)時(shí)間,下面介紹一下獲取方法,大家參考使用吧2014-01-01Shell腳本實(shí)現(xiàn)的單機(jī)流量統(tǒng)計(jì)功能
這篇文章主要介紹了Shell腳本實(shí)現(xiàn)的單機(jī)流量統(tǒng)計(jì)功能,本文給出實(shí)現(xiàn)代碼和使用方法,及運(yùn)行結(jié)果,需要的朋友可以參考下2014-11-11Linux用腳本實(shí)現(xiàn)“時(shí)分秒“倒計(jì)時(shí)功能
這篇文章主要介紹了Linux用腳本實(shí)現(xiàn)“時(shí)分秒“倒計(jì)時(shí)功能,本文圖文實(shí)例相結(jié)合給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-12-12Shell腳本實(shí)現(xiàn)生成SSL自簽署證書
這篇文章主要介紹了Shell腳本實(shí)現(xiàn)生成SSL自簽署證書,本文直接給出實(shí)現(xiàn)代碼,代碼中包含大量注釋,需要的朋友可以參考下2015-01-01fedora 23 lvm2格式 根目錄磁盤空間不足 擴(kuò)容方法
下面小編就為大家?guī)?lái)一篇fedora 23 lvm2格式 根目錄磁盤空間不足 擴(kuò)容方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02