Я пытаюсь запустить команду с несколькими аргументами. Синтаксис команды следующим образом:Bash: getopts передает флаг как неправильный аргумент
./foo -d directory -f file -v version app1 app2 app3 (this situation works)
Однако, если я поставил -v version
после app1,2,3
оно передается в качестве аргумента, а не -v
флага. Как получить флаг -v
для работы в любой позиции с несколькими аргументами?
while getopts ":d:f:v:" OPTION
do
case $OPTION in
d) IFS=","; directory=$OPTARG;;
f) file=$OPTARG;;
v) version=$OPTARG;;
*) echo && usage;;
/?) echo && usage;;
esac
done
shift $((OPTIND - 1))
for dir in ${dirList} do
for f in ${file} ; do
echo $dir/$file
done
done
[email protected]
'getopts' перестает разбор на первое без аргумента опции (пропуск опции арг). –