Я написал сценарий 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
в качестве последнего параметра является требованием. Какой самый простой способ добиться этого?