Я пытаюсь написать скрипт, который может одновременно использовать параметры ${1} и getopts. Я хотел бы, чтобы он работал с использованием строки использования:
./test_script test -a
печатать:
test
-a was triggered!
я пробовал
echo ${1};
while getopts "c:a" opt; do
case $opt in
a)
echo "-a was triggered!" >&2
;;
\?)
echo "Invalid option: -$OPTARG" >&2
;;
esac
done
Который не может предоставить мне доступ к ${1} и обнаружить, что опция -a использовалась одновременно. Есть ли способ использовать оба из них? Я бы не хотел превращать тестовую строку в другую опцию getopts.
$1
, и вы можете определить, что-a
было передано сценарию. Так что именно вы не можете сделать? - person kojiro   schedule 16.07.2013getopts
останавливается после первого не-варианта. Значение./test_script -a test
работает нормально, а./test_script test -a
нет... На справочной страницеgetopts
сказано следующее:Any of the following shall identify the end of options: the special option "--", finding an argument that does not begin with a '-', or encountering an error.
- person twalberg   schedule 16.07.2013