在shell中,case
語句用于根據(jù)模式匹配來執(zhí)行不同的命令塊。它類似于其他編程語言中的switch
語句。
case
語句的語法如下:
case 變量 in
模式1)
命令1
;;
模式2)
命令2
;;
...
*)
默認(rèn)命令
;;
esac
case
語句的執(zhí)行流程是,首先將變量與每個(gè)模式進(jìn)行匹配,一旦找到匹配的模式,就執(zhí)行對(duì)應(yīng)的命令塊,并且用;;
表示命令塊的結(jié)束。如果沒有找到匹配的模式,就執(zhí)行默認(rèn)命令塊(使用通配符*
表示)。
下面是一個(gè)示例,展示了case
語句的使用:
echo "請(qǐng)輸入一個(gè)數(shù)字:"
read num
case $num in
1)
echo "您輸入的是1"
;;
2)
echo "您輸入的是2"
;;
3|4)
echo "您輸入的是3或4"
;;
*)
echo "您輸入的不是1、2、3或4"
;;
esac
在上述示例中,根據(jù)用戶輸入的數(shù)字,case
語句會(huì)匹配相應(yīng)的模式,并執(zhí)行對(duì)應(yīng)的命令塊。如果用戶輸入的數(shù)字是1,輸出為"您輸入的是1";如果用戶輸入的數(shù)字是5,輸出為"您輸入的不是1、2、3或4"。