一 case條件語句
1)case語句相當於'多分支'的'if/elif/else'條件語句
2)用於實現'系統服務啟動指令碼'的場景
①語法
case "字串變數" in
值1) 指令1...
;;值2) 指令2...
;;*) 指令3...
esac
②
jira服務
③ 需求1
根據'使用者的輸入'判斷是否是'數字',如果使用者'輸入數字輸'出對應'輸入'的數字,如果是'其他內容返回'不正確
#!/bin/bash
#(1)健壯和友好
usage()
#(2)根據輸入的數字[0-9]的一位數字輸出相應的數字
case_fun()
#(3)判斷引數的個數
main()
main $*
④ 需求2
執行指令碼列印乙個'水果選單':
2、pear
3、banana
4、cherry
當使用者'選擇水果'的時候,'列印'選擇水果是什麼,並給水果單詞'加上顏色'
具體
#!/bin/bash
# 顏色預定義
red='\e[1;31m'
green='\e[1;32m'
yellow='\e[1;33m'
blue='\e[1;34m'
pink='\e[1;35m'
res='\e[0m'
# 說明:閃爍警告
flicker='\e[31;5m'
usage()plesae select the exist num behind. $"
exit 1
}choice()pear$"
;;3) echo -e "$banana$"
;;4) echo -e "$cherry$"
;;*) usage
esac
}main()
#(1)先列印選單-->echo或者cat兩種方式
echo "
2、pear
3、banana
4、cherry"
#(2)提示使用者輸入
read -t 10 -p "pls input a num:" num
main $num
# 說明:後續可以寫成乙個迴圈-->while true :5 exit
⑤
小結
case總結:
1、case語句就相當於'多分支'的if語句,case語句優勢是更'規範'、'易讀'
2、case語句適合'變數的值少(變數值離散)',且為'固定'的數字或字串集合-->(start、'stop'、restart)
3、系統服務啟動'指令碼傳參'的判斷多用case語句
三 顏色補充
幫助文件:'man console_codes'
① 純色
echo -e "\033[30m 黑色 \033[0m"
echo -e "\033[31m 紅色 \033[0m"
echo -e "\033[32m 綠色 \033[0m"
echo -e "\033[33m 黃色 \033[0m"
echo -e "\033[34m 藍色 \033[0m"
echo -e "\033[35m 紫色 \033[0m"
echo -e "\033[36m 天藍色 \033[0m"
echo -e "\033[37m 白色 \033[0m"
② 混色
echo -e "\033[40;37m 黑底白字 \033[0m"
echo -e "\033[41;37m 紅底白字 \033[0m"
echo -e "\033[42;37m 綠底白字 \033[0m"
echo -e "\033[43;37m 黃底白字 \033[0m"
echo -e "\033[44;37m 藍底白字 \033[0m"
echo -e "\033[45;37m 紫底白字 \033[0m"
echo -e "\033[46;37m 天藍底白字 \033[0m"
echo -e "\033[47;30m 白底黑字 \033[0m"
# 背景和字型顏色!
不錯的顏 linux系統shell程式設計case條件測試語句
case語句是在多個範圍匹配的資料,若匹配成功呢則執行相關命令並結束整條命令,若資料不在所列出的範圍內則會執行 號中所定義的預設命令。下面我們來看一下它的語法結構。case 變數值 in 模式1 命令序列1 模式2 命令序列1 預設命令序列 esac 下面呢,我們還是老樣子,寫乙個例項來演示一下ca...
shell程式設計 case語句
case語句格式 vi test.sh echo input read num echo the input data is num case num in 1 echo january 雙分號結束 2 echo feburary 5 echo may 每個case可以有多條命令 echo sdfd...
shell程式設計 case語句
case語句格式 vi test.sh echo input read num echo the input data is num case num in 1 echo january 雙分號結束 2 echo feburary 5 echo may 每個case可以有多條命令 echo sdfd...