Linux下shell中case命令詳解

來源:互聯網
上載者:User

   linux下shell中的case名字和C/C++中的switch類似,但是shell中的case更強大和複雜。

  1、強大主要體現在:shell中case中的關鍵字可以是字串類型,而每一項中可以包含Regex。

  2、複雜主要體現在:shell中case的每一個項後有三個選擇:break(常規的break)、unconditional follow up(無條件繼續)和conditional follow up(有條件繼續)。

  這篇文章的重點是上面的第2點。

  case的無條件繼續和有條件繼續是bash 4.1.x及之後的版本中才有的特性。

  執行如下命令可以查看你當前bash的版本

  echo $BASH_VERSION

  常規的break是在每一項後面加;;

  無條件繼續是在每一項後面加;&

  有條件繼續實在每一項後面加;;&

  測試代碼

  #!/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

  測試結果:

  Test No.1 ...1?Test No.2 ...1Test No.3 ...12Test No.4 ...1

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.