最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

bash shell的條件語句詳解

 更新時間:2024年12月30日 10:02:56   作者:WongKyunban  
文章主要介紹了bash shell中的條件語句,包括if-then-fi、else、elif等結(jié)構(gòu)的使用規(guī)則,以及條件判斷符號(如-eq、-lt等)的正確使用方法,感興趣的朋友一起看看吧
~ 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)文章

最新評論

鹿泉市| 义马市| 绍兴市| 民乐县| 南京市| 兴国县| 青浦区| 赞皇县| 瑞丽市| 乐都县| 德阳市| 邵阳市| 涿州市| 弥渡县| 长泰县| 靖宇县| 清水县| 清流县| 滨海县| 洛浦县| 正安县| 盱眙县| 博白县| 库伦旗| 枞阳县| 遵化市| 桦川县| 永康市| 宁夏| 柳州市| 黄陵县| 肃宁县| 林口县| 平邑县| 南宁市| 绥阳县| 罗平县| 玛纳斯县| 德化县| 通化县| 视频|