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...