大家好,今天給大家帶來的是Shell編程之case語句的使用!
其實case語句還是很好理解的,在shell編程中,if語句有它的語法,函數也有它的語法,那么在我們shell編程中的case語句也是有它的語法的,如下:
case 變量名 in 值1) 指令1 ;; 值2) 指令2 ;; 值3) 指令3 ;; esac
在以上的代碼中我們發現,以case開頭,以esac結尾,就像我們的if語句,以if開頭以fi結束時一樣的。
例2:
case "找老公條件" in 家里有房子) 嫁給你... ;; 家庭有背景) 嫁給你... ;; 很努力吃苦) 那么我們可以先談男女朋友.. ;; esac
好了接下來我們實踐,其實語法就是上面的一些基本語法,那么我么在實踐中來體會case到底有什么用
其實自我認為case語句更適合一些菜單選項的腳本,那么我們先用if語句寫一個菜單腳本如下:
#!/bin/bash #!/bin/bash # Date: 4:42 2018-2-5 # Mail: ywyankerp@163.com # Founder: <YanKai> # Describe: This is a one - button installation service script function CDAN(){ cat << yankerp 1.米飯 2.面條 3.包子 yankerp } CDAN read -p 請您輸入您今天要吃什么: NUM expr $NUM + 1 &>/dev/null if [ "$?" -ne 0 ] then echo "請您輸入{1|2|3}" exit 1 fi if [ "$NUM" -eq 1 ] then echo "小二,來一碗米飯" elif [ $NUM -eq 2 ] then echo "小二,來一碗面條" elif [ "$NUM" -eq 3 ] then echo "小二,來一鍋包子" fi 
首先我們看到我們上面的if語句,是不是感覺有點繁瑣,那么接下來我們使用case語句來實現 如下:
#!/bin/bash #!/bin/bash # Date: 4:42 2018-2-5 # Mail: ywyankerp@163.com # Founder: <YanKai> # Describe: This is a one - button installation service script function CDAN(){ cat << yankerp 1.米飯 2.面條 3.包子 yankerp } CDAN read -p 請您輸入您今天要吃什么: NUM expr $NUM + 1 &>/dev/null if [ "$?" -ne 0 ] then echo "請您輸入{1|2|3}" exit 1 fi case $NUM in 1) echo "小二,來一碗米飯" ;; 2) echo "小二,來一碗面條" ;; 3) echo "小二,來一鍋包子" ;; esac 
剖析時刻:
#!/bin/bash #!/bin/bash # Date: 4:42 2018-2-5 # Mail: ywyankerp@163.com # Founder: <YanKai> # Describe: This is a one - button installation service script function CDAN(){ #定義一個CDAN的函數 cat << yankerp 1.米飯 2.面條 3.包子 yankerp } CDAN #調用CDAN函數 read -p 請您輸入您今天要吃什么: NUM #輸入一條提示,然后把用戶輸入的字符串賦值給變量NUM expr $NUM + 1 &>/dev/null # 使用數值運算命令expr來確定用戶輸入的是否是數值 if [ "$?" -ne 0 ] #如果用戶輸入的不是數值 then #那么 echo "請您輸入{1|2|3}" #打印出 1 2 3 exit 1 #最后退出腳本 fi #結束if語句 case $NUM in #這里就是我們的case語句了,簡單理解,在NUM這個變量中 1) #如果用戶輸入的是1 echo "小二,來一碗米飯" #那么就輸出一行來一碗米飯 ;; 2) #如果在NUM變量中用戶輸入的是2 echo "小二,來一碗面條" #那么繼續打印此內容 ;; 3) #以此類推 echo "小二,來一鍋包子" ;; esac #最后使用esac結束
新聞熱點
疑難解答