shell脚本,case多条件判断语法基本格式:
#!/bin/bash
op=$1
case ${op} in
条件1)
cmd_1
cmd_2
;;
条件2)
cmd_1
cmd_2
;;
*)
cmd_1
cmd_2
exit 1 #可以加退出值
;;
esac
case取值后面必须为关键字 in,每一模式必须以右括号结束。条件1 条件2 取值可以为变量或常数。case 取值将检测匹配的每一个判断条件。一旦匹配,则执行完该判断条件下相应命令后,不再继续其他判断。如果没有匹配的判断条件,则使用星号 * 捕获该值,再执行*里面的指令直到结束。匹配符合之后进入判断分支执行,其间所有命令开始执行直至 ;; ;; 与C语言中的 break 类似,意思是跳到整个 case 语句到case外面。
下面是一个例子:
#!/bin/bash
function my_name(){
echo "my name is cai.xiaoming"
}
echo "sleep begin 1s"
sleep 1
# $1 是case后面的取值, 后面紧跟 in
case $1 in
ALL)
echo "I will do ALL"
#可以在这里加上 $? 执行结果判断
;;
all)
echo "You will do all"
#可以在这里加上 $? 执行结果判断, 下面同样可以加
;;
-c|--clean)
echo "I will clean all my work"
;;
linux-quic)
echo " linux-quic"
my_name
#这里可以对调用接口的返回值进行判断, 然后可以使用exit 退出等操作
;;
lk)
echo " linux lk"
;;
*)
echo " anything !"
;;
esac
sleep 1