語法結(jié)構(gòu)及特點
特點
檢查變量的實際取值
如果與預(yù)設(shè)的值相匹配,則執(zhí)行對應(yīng)的操作
語法結(jié)構(gòu)
語法結(jié)構(gòu)
case分支的執(zhí)行流程
case分支的執(zhí)行流程
case分支相關(guān)案例
案例1:判斷用戶輸入
需求
- 使用redhat堪唐,fedora控制參數(shù)
- 控制參數(shù)通過位置變量$1傳入
- 當用戶輸入redhat參數(shù)违柏,腳本返回fedora
- 當用戶輸入fedora參數(shù)漆际,腳本返回redhat
- 當用戶輸入其他參數(shù),則提示錯誤信息
代碼實現(xiàn)
#! /bin/bash
case $1 in
redhat)
echo "fedora";;
fedora)
echo "redhat";;
*) //默認輸出腳本用法
echo "用法: $0{redhat|fedora}
esac
案例2:控制nginx服務(wù)
需求
- 輸入start或者kai 就開啟nginx
- 輸入stop或STOP或s或guan就關(guān)閉nginx
- 輸入re或者cq就重啟nginx
- 輸入cx或者status就查詢nginx狀態(tài)
- 輸入其他參數(shù)贸呢,則提示錯誤信息
代碼實現(xiàn)
#!/bin/bash
case $1 in
start|kai)
/usr/local/nginx/sbin/nginx;;
stop|STOP|s|guan)
/usr/local/nginx/sbin/nginx -s stop;;
re|cq)
/usr/local/nginx/sbin/nginx -s stop
/usr/local/nginx/sbin/nginx;;
cx|status)
netstat -ntulp | grep -q nginx //查詢nginx奏司,但不輸出結(jié)果 -q選項是保持沉默
[ $? -eq 0 ] && echo "nginx正在運行" || echo "nginx未開啟";; //判斷伸刃,如果上述任務(wù)成功谎砾,說明nginx服務(wù)開啟,就顯示"nginx正在運行"捧颅,如果上述任務(wù)失敗景图,說名nginx服務(wù)關(guān)閉,就顯示"nginx未開啟"
*)
echo "請輸入start或stop"
esac