瀏覽量:57次
linux下shell中的case名字和C/C++中的switch類似,但是shell中的case更強(qiáng)大和復(fù)雜。
1、強(qiáng)大主要體現(xiàn)在:shell中case中的關(guān)鍵字可以是字符串類型,而每一項(xiàng)中可以包含正則表達(dá)式。
2、復(fù)雜主要體現(xiàn)在:shell中case的每一個(gè)項(xiàng)后有三個(gè)選擇:break(常規(guī)的break)、unconditional follow up(無(wú)條件繼續(xù))和conditional follow up(有條件繼續(xù))。
這篇文章的重點(diǎn)是上面的第2點(diǎn)。
case的無(wú)條件繼續(xù)和有條件繼續(xù)是bash 4.1.x及之后的版本中才有的特性。
執(zhí)行如下命令可以查看你當(dāng)前bash的版本
echo $BASH_VERSION
常規(guī)的break是在每一項(xiàng)后面加;;
無(wú)條件繼續(xù)是在每一項(xiàng)后面加;&
有條件繼續(xù)實(shí)在每一項(xiàng)后面加;;&
測(cè)試代碼
#!/bin/bashecho "Test No.1 ..."case "1" in 1) echo '1' ;;& 2) echo '2' ;; 3) echo '3' ;; ?) echo '?' ;; *) echo '*' ;;esacecho "Test No.2 ..."case "1" in 1) echo '1' ;; 2) echo '2' ;;& 3) echo '3' ;; ?) echo '?' ;; *) echo '*' ;;esacecho "Test No.3 ..."case "1" in 1) echo '1' ;& 2) echo '2' ;; 3) echo '3' ;; ?) echo '?' ;; *) echo '*' ;;esacecho "Test No.4 ..."case "1" in 1) echo '1' ;; 2) echo '2' ;& 3) echo '3' ;; ?) echo '?' ;; *) echo '*' ;;esac
測(cè)試結(jié)果:
Test No.1 ...1?Test No.2 ...1Test No.3 ...12Test No.4 ...1
上一篇: Win10顯卡驅(qū)動(dòng)修改后數(shù)字簽名沒(méi)有了該怎么辦,修改顯卡驅(qū)動(dòng)識(shí)別的顯卡型號(hào)
下一篇: 如何解決電腦進(jìn)入英雄聯(lián)盟后出現(xiàn)閃退的問(wèn)題,電腦進(jìn)入英雄聯(lián)盟黑屏是什么問(wèn)題
[聲明]本網(wǎng)轉(zhuǎn)載網(wǎng)絡(luò)媒體稿件是為了傳播更多的信息,此類稿件不代表本網(wǎng)觀點(diǎn),本網(wǎng)不承擔(dān)此類稿件侵權(quán)行為的連帶責(zé)任。故此,如果您發(fā)現(xiàn)本網(wǎng)站的內(nèi)容侵犯了您的版權(quán),請(qǐng)您的相關(guān)內(nèi)容發(fā)至此郵箱【779898168@qq.com】,我們?cè)诖_認(rèn)后,會(huì)立即刪除,保證您的版權(quán)。
官網(wǎng)優(yōu)化
整站優(yōu)化
渠道代理
400-655-5776