case
的格式如下:
case "变量" in
值1)
指令集1
;;
值2)
指令集2
;;
*)
指令集n
;;
esac
case
会将变量的值跟值1
、值2
等进行比较,符合就执行后边对应的指令集
,注意)
只是一个标识,表明这是一个分支,;;
是一个分支结束,)
和;;
这两者是固定写法。*
会匹配上边没有匹配到的情况。
vim casetest.sh
把下边的内容写进去:
#!/bin/bash
# case test
case ${1} in
"start"|"START")
echo "$0 starting..."
;;
"stop"|"STOP")
echo "$0 stoping..."
;;
"restart")
echo "$0 restarting..."
;;
"reload")
echo "$0 reloading..."
;;
*)
echo "Usage: $0 need variable"
;;
esac
代码中会匹配输出的第一个参数,若是输入的参数是start
或START
就会输出程序名 starting...
,依次类推。
chmod u+rx casetest.sh
给所属用户加上读写执行权限。
依次执行下边语句:
./casetest.sh start
./casetest.sh START
./casetest.sh STOP
./casetest.sh stop
./casetest.sh st
最后输入结果都是正确的。
此文章为7月Day 25学习笔记,内容来源于极客时间《Linux 实战技能 100 讲》。