java 编程 apache centos Firefox Python shell mysql Windows 程序员 Android php 微软 linux google 云计算 wordpress 开源 Ubuntu nginx

case多选结构

 if用於選擇的條件,不是很多的情況,如果選擇的條件太多,一系列的if,elif,,也是醉了。沒錯,case在bash中的地位,和switch在C中的地位一樣。但是用法可大有不同。

 任何語言都有代碼塊的概念,C語言中的花括號{ },python中的冒號和縮進。bash中的代碼塊風格不是很統一。但是在選擇結構中是相同的——反語。if結構使用if...fi標識一個代碼塊的作用域,而case也是用case...esac表示塊作用域的。

 註意每個條件末尾都是兩個分號。這很好理解,就像C語言的switch裏面每個case都經常會有一個break一樣。因為每個條件滿足的時候,需要執行的語句可能不止一句。而在bash中多個語句在一行是用一個分號間隔的。這樣兩個分號就表示著語句結束,另外加一個空語句,也就是說要執行的語句都完成了。

 與c語言的switch不同的是,c語言中每個條件(case語句)後面不一定都要有break,如果沒有break,則繼續執行下面的條件的語句。如果你想像c語言那樣多個條件共用一套語句,怎麽辦呢?

 右括號,類似c語言中switch中的case。然而與之不同的是,Bash中的右括號裏面,不僅支持完整的字符串(c語言中只支持整型數據,包括int和char,不支持字符串)還支持“模式”匹配。模式的概念,如果了解正則表達式,那麽就很容易理解了。不過case語句中與正則表達式略有不同。貌似支持的並不完整。

延伸阅读

  • 抱歉,暂无相关内容!

评论