if语句多分支
If [ 条件判断1 ] ; then
commands
elif [ 条件判断2 ] ; then
commands
elif [ 条件判断3 ] ; then
commands
.......
else
commands
Fi
流程控制语句:case
- 格式: 适用于多分支,是一个多选择语句
case 变量值 in
模式1)
命令序列1
;;
模式2)
命令序列2
;;
……
*)
;;
默认命令序列
esac
取值后面必须为单词in,每一模式必须以右括号结束。取值可以为变量或常数。匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;;
匹配中的值可以是多个值,通过“|”来分隔
取值将检测匹配每一个模式。一旦模式匹配,则执行完匹配模式相应命令后不再继续其他模式。如果无一匹配模式,使用星号 * 捕获该值,再执行后面的命令
它需要一个esac(就是case反过来)作为结束标记,圆括号,用两个分号表示该程序段结束。
hell中色彩的处理
shell脚本中echo显示内容带颜色显示,echo显示带颜色,需要使用选项-e(可以用来识别我们的转义字符) 格式: echo -e “\033[背景颜色;文字颜色m 文字内容\033[0m” echo -e “\e[背景颜色;文字颜色m 文字内容\e[0m”
[root@nfs2 sh]# cat grade.sh
#!/bin/bash
read -p "输入你的分数:" grade
if [ $grade -lt 0 ] || [ $grade -gt 100 ]
then
echo "error:输入错误"
exit 1
elif [ $grade -ge 85 ] && [ $grade -le 100 ]
then
echo "你的分数是$grade,优秀."
elif [ $grade -ge 70 ] && [ $grade -le 84 ]
then
echo "你的分数是$grade,合格。"
else
echo "你的分数是$grade,不合格。"
fi
[root@nfs2 sh]# cat u15.sh
#!/bin/bash
read -p "输入一个字母:" key1
case $key1 in
a)
ls
;;
b)
ls -l
;;
c)
ls -lh
;;
d)
ls -a
;;
*)
echo "error:xxxxxxxxx"
;;
esac
[root@nfs2 ~]# cat /usr/lib/systemd/system/nginx.service
#!/bin/bash
case $1 in
start)
pgrep -x nginx &> /dev/null
if [ $? -eq 0 ]
then
echo "nginx sernice is already runing."
else
echo "will start nginx service."
/usr/local/nginx/sbin/nginx
if [ $? -eq 0 ]
then
echo "sucessfule"
fi
fi
;;
stop)
pgrep -x nginx &> /dev/null
if [ $? -eq 0 ]
then
echo "will stop nginx service."
/usr/local/nginx/sbin/nginx -s stop
fi
;;
restart)
pgrep -x nginx &> /dev/null
if [ $? -eq 0 ]
then
echo "will stop nginx service."
/usr/local/nginx/sbin/nginx -s stop
/usr/local/nginx/sbin/nginx
fi
;;
reload)
pgrep -x nginx &> /dev/null
if [ $? -eq 0 ]
then
echo "will stop nginx service."
/usr/local/nginx/sbin/nginx -s reload
fi
;;
status)
pgrep -x nginx &> /dev/null
if [ $? -eq 0 ]
then
echo "ngingx service is up."
else
echo "nginx service is down."
fi
;;
*)
echo "error:参数输入错误,请输入start|stop|restart|reload"
;;
esac