Shell中case判断结构的用法
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't what to do..."
;;
esac
执行命令:
bash system.sh
输出:
My system is Linux
Do Linux stuff here...