1. 程式人生 > >Shell語法—— case 條件語句

Shell語法—— case 條件語句

UNC functions restart 條件語句 lse init str ase shell語法

case 條件語句語法

case 條件語句語法格式為:

case  " 變量 " in
                    值 1)
                                    指令 1
                    ;;
                    值 2)
                                    指令 2
                    ;;
                    \* )
                                    指令 3
                    ;;
esac
了解即可

給字體加顏色的命令:
例:echo -e "\E[1;31m 紅顏色 hello world \E[0m"

  1. \E 等同於 \033
  2. "[1" 數字 1 表示加粗顯示
  3. 31m 表示紅色字體
  4. "[0m" 表示關閉所有屬性
  5. "[1m" 表示設置高亮度
  6. "[4m" 表示下劃線
  7. "[5m" 表示閃爍
  8. "[7m" 表示反顯
  9. "[8m" 表示消隱
  10. \33[30m -- \33[37m 表示設置前景色
  11. \33[40m -- \33[47m 表示設置背景色
    案例一:
    編寫 Nginx 啟動 停止服務。
    此處僅為做邏輯與 case 語法練習所用,腳本本身並沒有什麽用途
#!/bin/bash
RETVAL=0
pid=/var/run/nginx.pid
. /etc/init.d/functions
start(){
if [ ! -f $pid ];then
        service nginx start
        RETVAL=$?
        if [ $RETVAL -eq 0 ];then
                action "nginx is started" /bin/true
                return $RETVAL
        else
                action "nginx is started" /bin/false
                return $RETVAL
        fi
else
        echo "nginx is running"
        return 0
fi
}

stop(){
if [ -f $pid ];then
        service nginx stop
        RETVAL=$?
        if [ $RETVAL -eq 0 ];then
                action "nginx is started" /bin/true
                return $RETVAL
        else
                action "nginx is started" /bin/false
                return $RETVAL
        fi
else 
        echo "nginx is stop"
        return 0
fi
}

restart(){
        stop
        start
}

case $1 in
  start|yes)
        start
        RETVAL=$?
        ;;
  stop|no)
        stop
        RETVAL=$?
        ;;
  restart|or)
        restart
        RETVAL=$?
        ;;
  \*)
        echo "Usage:$0{start(yse)|stop(on)|restart(or)}"
        exit 1
esac
exit $RETVAL

Shell語法—— case 條件語句