case
的格式如下:
case "变量" in值1)指令集1;;值2)指令集2;;*)指令集n;;
esac
case
会将变量的值跟值1
、值2
等进行比较,符合就执行后边对应的指令集
,注意)
只是一个标识,表明这是一个分支,;;
是一个分支结束,)
和;;
这两者是固定写法。*
会匹配上边没有匹配到的情况。
vim casetest.sh
把下边的内容写进去:
#!/bin/bash# case testcase ${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 讲》。