十五 Shell case esac語句

2021-06-28 07:33:44 字數 1660 閱讀 5768

case ... esac 與其他語言中的 switch ... case 語句類似,是一種多分枝選擇結構。

case 語句匹配乙個值或乙個模式,如果匹配成功,執行相匹配的命令。case語句格式如下:

case 值 in

模式1)

command1

command2

command3

;;模式2)

command1

command2

command3

;;*) command1

command2

command3

;;esac

case工作方式如上所示。取值後面必須為關鍵字 in,每一模式必須以右括號結束。取值可以為變數或常數。匹配發現取值符合某一模式後,其間所有命令開始執行直至 ;;。;; 與其他語言中的 break 類似,意思是跳到整個 case 語句的最後。

取值將檢測匹配的每乙個模式。一旦模式匹配,則執行完匹配模式相應命令後不再繼續其他模式。如果無一匹配模式,使用星號 * 捕獲該值,再執行後面的命令。

下面的指令碼提示輸入1到4,與每一種模式進行匹配:

echo 'input a number between 1 to 4'

echo 'your number is:\c'

read anum

case

$anumin1

) echo 'you select 1';;2

) echo 'you select 2';;3

) echo 'you select 3';;4

) echo 'you select 4'

;;*) echo 'you do not select a number between 1 to 4'

;;esac

輸入不同的內容,會有不同的結果,例如:

input a number between 1 to 4

your number is:3

you select 3

再舉乙個例子:

#!/bin/bash

option

="$"

case$in

-f)file

="$"

echo "file name is $file"

;;-d

)dir

="$"

echo "dir name is $dir"

;;*)

echo "`basename $`:usage: [-f file] | [-d directory]"

exit

1# command to come out of the program with status 1

;;esac

執行結果:

$./test.sh

test.sh: usage: [ -f filename ] | [ -d directory ]

$ ./test.sh -f index.htm

$ vi test.sh

$ ./test.sh -f index.htm

file name is index.htm

$ ./test.sh -d unix

dir name is unix

$

一百七十五

簡介 openid connect簡稱為oidc,已成為internet上單點登入和身份管理的通用標準。它在oauth2上構建了乙個身份層,是乙個基於oauth2協議的身份認證標準協議。oauth2實際上只做了授權,而openid connect在授權的基礎上又加上了認證。oidc的優點是 簡單的基...

IT女人,從二十五到三十五

it女人,從二十五到三十五 伴著老公和兒子的酣聲,一氣完成了此文,這周沒有工作的日子讓我很無奈。我的三十五歲是去年秋天在家裡過的,因為乙個月前老闆讓我回家。11月的時候,不甘心又找了乙份工作,但是今天又開始找工作了。兩次失去工作都是一樣的經歷,給所任職公司做 有人做網頁,但是沒人出內容,我就負責 的...

十五周總結

時間總是想留也留不住,從學設計模式到現在關於設計模式的總結我寫得不多,看設計模式的時候總是感覺作者寫的這些東西都很對,針對具體情況,本著擴充套件性強 方便繼承能復用的方向去解決。對於 大話設計模式 上的例子,要想真正的要理解透了,方便以後自己在專案編碼中更快的應用到設計模式,大家也都體會到了,就設計...