如@Yang Fang的答案,你可以自行解析$@
参数实现解析。但是实际情况比这复杂。比如说,如果我需要一个-name test
的带参数选项,直接遍历$@
的代码就很复杂了。
正常一点的解决方案是用bash
的built-in getopts
或者命令getopt
(注意这俩名字不一样)。
提问者如果翻墙的话可以去这里看我写的一篇日志 http://yegle.net/2011/04/21/parsing-n...
我把里面的样例代码贴这里。你可以将这部分代码保存成脚本然后执行之测试效果
# getopts :s:h表示这个命令接受2个带参数选项,分别是-h和-s
while getopts :s:h opt
do
case $opt in
s)
echo "-s=$OPTARG"
;;
:)
echo "-$OPTARG needs an argument"
;;
h)
echo "-h is set"
;;
*)
echo "-$opt not recognized"
;;
esac
done