我正在运行bash版本4.2,我正在尝试使用内置命令getopts
解析命令行参数,
但是getopts似乎没有正确解析它,如果-s
不是第一个参数,它将不会被解析
-s
未解析:
%> ./getopt.sh aaa -s aaa
aaa
这一个得到的解析
%> ./getopt.sh -s aaa
s: aaa
aaa
脚本在这里:
#!/bin/bash
while getopts "bs:" opt
do
case $opt in
s)
echo "s: $OPTARG"
;;
*)
echo not supported
;;
esac
shift
done
echo $1
答案 0 :(得分:3)
与(较旧的)getopt
不同,getopts
不会重新排列放置选项的参数
第一。因此,在
./getopt.sh arg1 -s opt1
只要看到非选项arg1
,选项解析就会停止。