bash shell的條件語句詳解
~ script% touch if.sh ~ script% chmod 755 if.sh
1.if-then-fi
#!/usr/bin/env bash FOOD=$1 if [ $FOOD="apple" ] then echo The food is $FOOD fi exit 0
~ script % ./if.sh apple The food is apple
如果要將多條語句寫在一行,可以分號分割開,如:
if [ $FOOD="apple" ];then
注意:
if [ 條件 ],中括號包住的條件與括號之間必須要有空格。if關(guān)鍵字與中括號之間也必須要有空格。為什么會這樣, 因?yàn)槊钆c參數(shù)之間必須要用空格分開。[]中括號代表的量test這個命令,所以上面的if語句也可以寫成:
if test $FOOD="apple"
then
echo The food is $FOOD
fi所以如果沒有空格了,解析器就會找到一個錯誤或不存在的命令,因?yàn)樗鼤言诿恳恍杏龅降牡谝粋€空格前面有字符串的字符串當(dāng)作是命令,之后的當(dāng)作是參數(shù)。所以如果if和[]沒有空格,執(zhí)行腳本時就會報(bào)錯,把if[ apple=apple ]都當(dāng)作是命令了,而這實(shí)際上是一個不存在的命令:
~ script % ./if.sh apple ./if.sh: line 4: if[ apple=apple ]: command not found
溫馨提示:賦值語句的等號左右不能有空格,否則會報(bào)錯。
2.else子句
if.sh:
#!/usr/bin/env bash
NUM=$1
if [ $NUM -eq 10 ] # = 等價于-eq,后者只能用于數(shù)字的比較上,前者=,則在字符串和數(shù)字上都能用于相等的比較
then
echo it is 10
else
echo it is not 10
fi
exit 0~ script % ./if.sh 109 it is not 10
3.elif子句
#!/usr/bin/env bash
NUM=$1
if [ $NUM -eq 10 ] # = 等于-eq,后者只能用于數(shù)字的比較上,前者則都可以用在字符串和數(shù)字的相等比較上
then
echo equal 10
elif [ $NUM -lt 10 ]
then
echo less than 10
elif [ $NUM -le 11 ]
then
echo less than or equal 11
else
echo greater than 11
fi
exit 0~ script % ./if.sh 109 greater than 11
-eq:equal 等于-lt:less than 小于-gt:greater than 大于-le:less than or equal 小于或等于-ge:greater than or equal 大于或等于
為什么不可以用<,>等來表達(dá)上面這些關(guān)系,因?yàn)檫@些符號在類Unix系統(tǒng)中有特殊用途。
到此這篇關(guān)于bash shell的條件語句的文章就介紹到這了,更多相關(guān)bash shell條件語句內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Linux中shell腳本獲取當(dāng)前工作目錄的方法
今天小編就為大家分享一篇Linux中shell腳本獲取當(dāng)前工作目錄的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06
Shell腳本實(shí)現(xiàn)監(jiān)控iptables規(guī)則是否被修改
這篇文章主要介紹了Shell腳本實(shí)現(xiàn)監(jiān)控iptables規(guī)則是否被修改,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2014-12-12
linux下使用ssh遠(yuǎn)程執(zhí)行命令批量導(dǎo)出數(shù)據(jù)庫到本地
這篇文章主要介紹了linux下使用ssh遠(yuǎn)程執(zhí)行命令批量導(dǎo)出數(shù)據(jù)庫到本地,需要的朋友可以參考下2015-04-04
linux shell腳本學(xué)習(xí)錄制與回放終端會話
這篇文章主要介紹了linux錄制與回放終端會話實(shí)例,大家參考使用吧2013-12-12
零基礎(chǔ)入門篇之Linux及Arm-Linux程序開發(fā)筆記
這篇文章主要介紹了零基礎(chǔ)入門篇之Linux及Arm-Linux程序開發(fā)筆記,需要的朋友可以參考下2015-10-10

