技術(shù)員聯(lián)盟提供win764位系統(tǒng)下載,win10,win7,xp,裝機(jī)純凈版,64位旗艦版,綠色軟件,免費(fèi)軟件下載基地!

當(dāng)前位置:主頁(yè) > 教程 > 服務(wù)器類(lèi) >

Linux下shell中case命令詳解

來(lái)源:技術(shù)員聯(lián)盟┆發(fā)布時(shí)間:2018-06-13 06:33┆點(diǎn)擊:

  linux下shell中的case名字和C/C++中的switch類(lèi)似,但是shell中的case更強(qiáng)大和復(fù)雜。

  1、強(qiáng)大主要體現(xiàn)在:shell中case中的關(guān)鍵字可以是字符串類(lèi)型,而每一項(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