W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
如果您之前學(xué)習(xí)過C語言,看到這一小節(jié)的標(biāo)題肯定會(huì)會(huì)心一笑“這不就是switch語句嘛!”是的,case條件測(cè)試語句和switch語句的功能非常相似!case語句是在多個(gè)范圍內(nèi)匹配數(shù)據(jù),若匹配成功則執(zhí)行相關(guān)命令并結(jié)束整個(gè)條件測(cè)試;而如果數(shù)據(jù)不在所列出的范圍內(nèi),則會(huì)去執(zhí)行星號(hào)(*)中所定義的默認(rèn)命令。case語句的語法結(jié)構(gòu)如圖4-22所示。
圖4-22 case條件測(cè)試語句的語法結(jié)構(gòu)
在前文介紹的Guess.sh腳本中有一個(gè)致命的弱點(diǎn)—只能接受數(shù)字!您可以嘗試輸入一個(gè)字母,會(huì)發(fā)現(xiàn)腳本立即就崩潰了。原因是字母無法與數(shù)字進(jìn)行大小比較,例如,“a是否大于等于3”這樣的命題是完全錯(cuò)誤的。我們必須有一定的措施來判斷用戶的輸入內(nèi)容,當(dāng)用戶輸入的內(nèi)容不是數(shù)字時(shí),腳本能予以提示,從而免于崩潰。
通過在腳本中組合使用case條件測(cè)試語句和通配符(詳見第3章),完全可以滿足這里的需求。接下來我們編寫腳本Checkkeys.sh,提示用戶輸入一個(gè)字符并將其賦值給變量KEY,然后根據(jù)變量KEY的值向用戶顯示其值是字母、數(shù)字還是其他字符。
[root@linuxprobe ~]# vim Checkkeys.sh
#!/bin/bash
read -p "請(qǐng)輸入一個(gè)字符,并按Enter鍵確認(rèn):" KEY
case "$KEY" in
[a-z]|[A-Z])
echo "您輸入的是 字母。"
;;
[0-9])
echo "您輸入的是 數(shù)字。"
;;
*)
echo "您輸入的是 空格、功能鍵或其他控制字符。"
esac
[root@linuxprobe ~]# bash Checkkeys.sh
請(qǐng)輸入一個(gè)字符,并按Enter鍵確認(rèn):6
您輸入的是 數(shù)字。
[root@linuxprobe ~]# bash Checkkeys.sh
請(qǐng)輸入一個(gè)字符,并按Enter鍵確認(rèn):p
您輸入的是 字母。
[root@linuxprobe ~]# bash Checkkeys.sh
請(qǐng)輸入一個(gè)字符,并按Enter鍵確認(rèn):^[[15~
您輸入的是 空格、功能鍵或其他控制字符。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: