我正在使用 getopts 编写一个脚本,该命令可以具有任何顺序的参数,包括有效参数-a
和文件名,如stuff.txt
. 问题是,当我运行这样的命令时:
program.sh -a -b stuff.txt -c -d
我的代码处理参数-a
并且没问题-b
,直到它到达文件名,然后它停止处理并且不接触参数-c
,-d
然后。我的代码看起来有点像这样:
while getopts ":a:b:c:d" opt; do
case "$opt" in
a) # do something;;
b) # do something;;
/?) echo ERROR
exit 1;;
esac
done
我在while
循环之外处理文件,它们似乎注册得很好。