您好,登錄后才能下訂單哦!
?????case語句相當于多分支的if/elif/else語句,而在使用case會讓腳本看起來更簡單工整。在case語句中,程序會將獲取到的值與case表達式中的條件逐一進行對比,如果匹配則執行對應的語句,遇到雙分號(;;)則停止執行。如果一直未找到匹配項,則執行*)后面的語句,相當其他語言中的default功能。
基本語法?
case "var" in
? value 1)
? ? 語句
? ? ;;
? value 2)
? ? 語句
? ? ;;
? value n)
? ? 語句
? ? ;;
? *)
? ? 語句
esac
最后一個分支語句,即esac前,可以省略雙分號
case示例
[root@localhost Test]# cat case.sh
#!/bin/bash
a=$1
case "${a}" in
?1)
? echo "input number is 1"
? ;;
?2)
? echo "input number is 2"
? ;;
?3)
? echo "input number is 3"
? ;;
?*)
? echo "case default value"
esac
[root@localhost Test]# bash case.sh 1
input number is 1 ? # 匹配條件1
[root@localhost Test]# bash case.sh 3
input number is 3 ? # 匹配條件3
[root@localhost Test]# bash case.sh a
case default value ? # 未匹配到條件
使用if語句同樣可以達到同樣的效果
[root@localhost Test]# cat caseif.sh
#!/bin/bash
a=$1
if [ ${a} -eq 1 ]
?then
? echo "input number is 1"
elif [ ${a} -eq 2 ]
? then
? ?echo "input number is 2"
elif [ ${a} -eq 3 ]
? then
? ? echo "input number is 3"
else
?echo "case default value"
fi
[root@localhost Test]# bash caseif.sh 1
input number is 1
[root@localhost Test]# bash caseif.sh 3
input number is 3
[root@localhost Test]# bash caseif.sh a
caseif.sh: 第 3 行:[: a: 期待整數表達式
caseif.sh: 第 6 行:[: a: 期待整數表達式
caseif.sh: 第 9 行:[: a: 期待整數表達式
case default value
case語句總結
1、case語句比較適合變量值較少且為固定的數字或字符串集合的情況。
2、case一般常用于編寫服務的啟動腳本等
3、if則是取值進行判斷比較,應用面比case要廣,大部分的case語句可以使用if進行替代
?
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。