bash中case的用法

2022-06-13 06:00:10 字數 1359 閱讀 9206

看到一些很實用的指令碼,由於之前對於bash指令碼的積累都比較離散,沒有乙個全面的了解,在這裡記錄一下:

bash的case語句用法

case語句的語法規則是:

case$變數名 in

模式1)

命令序列1

;; 模式2)

命令序列2

;; *) 預設執行的命令序列

;;esac

注意的是, case比較的是pattern,然後既然是萬用字元,那麼:

切記萬用字元本身不能用引號括起來。

而對於變數var是否使用雙引號括起來都可以。

另外要記住萬用字元(pattern)和規則表示式(regular expression)的區別。

匹配模式中可是使用方括號表示乙個連續的範圍,如[0-9];使用豎槓符號「|」表示或。

最後的「*)」表示預設模式,當使用前面的各種模式均無法匹配該變數時,將執行「*)」後的命令序列。

case語句例項:由使用者從鍵盤輸入乙個字元,並判斷該字元是否為字母、數字或者其他字元, 並輸出相應的提示資訊。

#!/bin/bash

read -p "press some key ,then press return :" key

case $key in

[a-z]|[a-z])

echo "it's a letter."

;;[0-9])

echo "it's a digit."

;;*)

echo "it's function keys、spacebar or other ksys."

esac

case word in [ pattern [ | pattern ] ... ) list ;; ] ... esac

case/esac的標準用法大致如下: 

case $arg in 

pattern | sample) # arg in pattern or sample 

;; pattern1) # arg in pattern1 

;; *) #default 

;; esac 

arg是您所引入的引數,如果arg內容符合pattern專案的話,那麼便會執行pattern以下的程式碼,而該段程式碼則以兩個分號";;"做結尾。 

可以注意到"case"及"esac"是對稱的,如果記不起來的話,把"case"顛倒過來即可。 

case語句匹配的是萬用字元,如果加上雙引號後就不是按萬用字元處理,而是按文字處理。

使用雙引號後萬用字元就不再生效 ,只是作為普通字元對待。

T SQL中Case的用法

case語句是條件判斷語句的一種,可以完成比if語句更強的判斷,可以解決if語句中巢狀過多的問題。語法 case when 條件a then 結果a when 條件b 結果b else 結果n end 和decode 不同的是,decode 只能針對固定的值,而 case 可以用不是固定值,需是乙個...

sql中case的用法

由於之前沒有用到case,乙個簡單的分類統計問題竟被我group by 又union的整得很麻煩,原來case是可以應用得很靈活的。乙個應用場景如下 乙個表中儲存了使用者 姓名,年齡,性別 要求統計 35歲和 35歲的女使用者和南使用者分別是多少 一共四類 開始我是想著先把 35歲的按性別group...

關於Linux中case的用法

在linux中,case的基本思想和c語言中一樣,都是選擇執行,舉個例子 bin sh echo is it morning?read date case date in yes yes yes y echo good morning.nn echo good afternoon.echo sorr...