shell學習12 case和select的用法

2021-09-12 15:40:12 字數 2328 閱讀 8091

case 用法:

case 待測試的變數或值 in 

條件測試區 1

命令區域1

;;條件測試區2

命令區域2

;;...

;;esac

測試**: 

#!/bin/bash

#echo "please enter your name:"

read name

case "$name" in (gyz|gyh|gmz)

echo "good"

;;esac

echo "please enter your age:"

read age

case $age in

27|28)

echo "young"

;; 29|30)

echo "old"

;; 31|32)

echo "very old"

;;esac

#exit 0

相同條件區域的,可以用"|"隔開。

執行結果:

gyz@debian:~/shelltest$ ./cash.sh 

please enter your name:

gyzgood

please enter your age:

29old

select是用來建立選單的,用法如下:

select 變數 in 列表

do 命令區域

done

測試**:

1 #!/bin/bash

2 #3 ps3="input number:"

4 echo

5 #6 select f in *

7 do

8 echo "the number is $reply,the file_name is $f"

9 done

10 exit 0

解釋:ps3是在本指令碼執行過程中暫時修改命令列提示符。

*表示當前目錄下所有的檔案,如果只是指定的幾個檔案,就將*替換為那些檔案,檔案之間用空格代替。

使用ctrl+c停止指令碼。

執行結果:

gyz@debian:~/shelltest$ ./sel.sh 

1) aa_test.sh 5) cash.sh 9) read.sh 13) uncomm.sh

2) ak.sh 6) comm.sh 10) sel.sh 14) var.sh

3) a.txt 7) dec.sh 11) test_echo.sh

4) awkk.sh 8) exp.sh 12) test_s1.sh

input number:5

the number is 5,the file_name is cash.sh

input number:4

the number is 4,the file_name is awkk.sh

input number:^c

gyz@debian:~/shelltest$

也可以用函式的方式,如下:

1 #!/bin/bash

2 #3 ps3="choose the number:"

4 echo

5 #6 choice_of()

7 13 choice_of 11 22 33 44 55 66

14 exit 0

執行結果如下:

gyz@debian:~/shelltest$ ./sef.sh 

1) 11

2) 22

3) 33

4) 44

5) 55

6) 66

choose the number:3

the num is 33.

choose the number:2

the num is 22.

choose the number:1

the num is 11.

choose the number:0

the num is .

choose the number:-1

the num is .

choose the number:^c

gyz@debian:~/shelltest$

參考:陳祥琳 編 《linux shell 指令碼程式設計從入門到精通》

SHELL學習之 case語句

case語句是點名語句,每個分支語句之間是平衡的,在進行判定時,每個分支語句之判定一次,適合於字元匹配。if else 語句適合在判斷時用,if語句每個分支語句之間是有優先順序的,在進行判定時,每個語句都要判定一次。case語句和if語句相比,判定次數少。root fuwu test cat cas...

shell 學習之case語句

一般建議變數用引號括起來 v 顯示資訊 case shift 把剛才的變數踢掉 一 case語句 語法結構 case stitch in value1 statement value2 statement esac 示例 給出選項讓使用者選擇,然後根據使用者所選顯示出相應的資訊 1 2 3 4 5 ...

Shell 判斷 if 和分支 case

語法 if 條件判斷式 then do something fi或者 if 條件判斷式 then do something fi案例一,獲取當前使用者名稱,當然用whoami也可 bin bash test env grep user cut d f 2 if test root then echo...