实现比较简单,主要是通过while循环去检索然后通过case去匹配参数列表。代码如下:
#!/bin/bash
while [ -n "$1" ] #获取第一个参数
do
case "$1" in #进行匹配
-opt1) #建议option前加一个短横线作为区分
echo "do something option1"
;;
-opt2)
value2=$2
echo "do something option2, value: $value2"
;;
-opt3)
echo "do something option3"
;;
-opt4)
value4=$2
echo "do something option4, value: $value4"
;;
esac
shift # 转向下一个
done
执行情况如下:文章来源:https://uudwc.com/A/MxZgN
➜ chmod +x test_get_opt.sh
➜ ./test_get_opt.sh -opt1 -opt2 222 -opt4 444
do something option1
do something option2, value: 222
do something option4, value: 444
➜ ./test_get_opt.sh -opt1 -opt5 222 -opt4 444
do something option1
do something option4, value: 444
先使用chmod +x
给shell脚本添加一个可执行权限。
第一次输入参数-opt1 -opt2 222 -opt4 444
均成功匹配并执行相应信息打印;
第二次输入参数-opt1 -opt5 222 -opt4 444
因为 -opt5 不是预设的option所有不会有相应匹配的代码执行。文章来源地址https://uudwc.com/A/MxZgN