【发布时间】:2015-05-04 18:33:52
【问题描述】:
我编写了一个 bash 脚本,它采用灵活数量的参数,现在我想为每个参数添加一个可选参数 (-l)。
我目前难以获得所需的行为。
我希望以下所有内容都能正确执行:
./Script.sh arg1 arg2 arg3 -l opt
./Script.sh arg1 arg2 arg3
./Script.sh arg1 arg2 arg3 arg4 -l opt
./Script.sh arg1 arg2 arg3 arg4 arg5
问题是不能设置$OPTIND。
如果 -l opt 放在第一个参数之前,则以下循环有效。
while getopts ":l:" option
do
case "$option" in
t)
F_NAME=$OPTARG
;;
esac
done
shift $((OPTIND - 1))
但是,必须将可选的-l 作为最后一个参数。
实现这一目标的最简单方法是什么?
【问题讨论】: