Я пытаюсь использовать getopts
на cygwin
в сценарии bash
. Ниже приведен код:Ошибки с использованием getopts на cygwin
#!/bin/bash
# Sample program to deal with getopts.
echo "Number of input arguments = $#";
i=0;
while [ ${i} -lt 10 ];
do
i=$[${i}+1];
echo ${i};
done
while getopts ":a:b:c:e:" opt;
do
case ${opt} in
a)
echo "-a was triggered with argument: ${OPTARG}";
;;
b)
echo "-b was triggered with argument: ${OPTARG}"
;;
c)
echo "-c was triggered with argument: $[OPTARG}"
;;
e)
echo "-e was triggered with argument: ${OPTARG}"
;;
?)
echo "Invalid argument: ${OPTARG}"
;;
esac
done
Когда я запускаю приведенный выше код, я получаю следующее сообщение об ошибке:
./getOpts_sample.bash: line 37: syntax error near unexpected token `done'
./getOpts_sample.bash: line 37: `done'
Я не могу понять причину за этой ошибки. Почему цикл getopts
не работает, пока первый делает? Это потому, что моя система не установлена getopts
? Как я могу это проверить?
Это отличный ответ, я хотел бы дать ему больше, чем один upvote! – ruakh
Спасибо за это! Я думаю, мне нужен сон. Я не вижу код правильно. – Sriram