Shell脚本中case命令的用法和if/elif/else判断结构的用法等价,case命令也用于多种可能情况下的分支判断场景。
语法结构如下:
case var in
var1) command1 ;;
var2) command2 ;;
var3) command3 ;;
...
*) command ;;
esac
执行过程:从上到下依次比较var和var1、var2、var3的值是否相等,如果匹配相对则执行后面的命令语句,在匹配的情况下匹配最后的默认*,并执行后面的默认命令。
注意:var1、var2等对应的值只能是常量或者是正则表达式。
示例:
cat system.sh
内容如下:
#!/bin/sh
SYSTEM=`uname -s`
case $SYSTEM in
Linux)
echo "My system is Linux"
echo "Do Linux stuff here..."
;;
FreeBSD)
echo "My system is FreeBSD"
echo "Do FreeBSD stuff here..."
;;
*)
echo "Unknown system : $SYSTEM"
echo "I don what to do..."
;;
esac
执行命令:
bash system.sh
输出:
My system is Linux
Do Linux stuff here...