以case…esac为标志;
每个模式以右括号 “)” 结束,匹配模式可以使用 [0-9] 以及 “|” 等通配符;
双分号 “;;” 表示命令序列结束;
默认模式使用*)表示,在不满足前面的模式后,执行默认模式后的命令序列;
case $变量名 in
模式1)
命令序列1
;;
模式2)
命令序列2
;;
*)
默认执行的命令序列
;;
esac
使用while循环来判断命令行参数个数,而后结合case以及shift命令处理参数赋值给不同的成员变量。
while [[ $# -gt 0 ]]
do
key="$1"
case $key in
-tool)
SIMULATOR="$2"
shift
;;
-test)
TEST="$2"
shift
;;
-n)
TEST_NUM="$2"
shift
;;
-o)
OUT_DIR="$2"
shift
;;
-seed)
SEED="$2"
shift
;;
*)
echo "Error: "
echo " Unknow Options -> $1"
echo ""
echo "<<<Usage:"
echo " sh demo.sh [-test base_test] [-n 10] [-o ./OUT] [-seed 123] [-tool vcs]"
exit 1
;;
esac
shift
done