Linux下shell中case命令詳解(常規的break、無條件繼續和有條件繼續)

來源:互聯網
上載者:User

標籤:shell   Regex   bash   

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



Linux下shell中case命令詳解(常規的break、無條件繼續和有條件繼續)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.