Я пытаюсь использовать getopts для скрипта bash. Этот скрипт может иметь флаги, и все эти флаги являются обязательными и должны содержать значение. Когда один из обязательных флагов, который должен содержать значение, является пустым getopts, используйте флаг next-in-line в качестве его содержимого. Как я могу это предотвратить?getopts - если флаг пуст, getopts использует следующий флаг
Это мой пример:
#!/bin/bash
while getopts "A:B:" OPTION
do
case $OPTION in
A)
GILIA="$GILIA $OPTARG"
echo GILIA $GILIA
;;
B)
GILIB="$GILIB $OPTARG"
echo GILIB $GILIB
;;
esac
done
При использовании обоих флагов со значением:
./test_opt2 -A aaa -B bbb
GILIA aaa
GILIB bbb
При использовании "-A" флаг пустым:
./test_opt2 -A -B bbb
GILIA -B
Я знаю, что это это нормальное/типичное поведение getopts, и я уверен, что есть способ обойти это ...
Любые идеи?
Отличное и элегантное решение !!!! Я использовал этот ответ, чтобы решить мою проблему. –
хороший подход, единственное, что я бы сказал, это то, что это не распространяется на опцию, когда нет опций или аргументов: «$ ./t.sh», ничего не возвращает –