getopts
スクリプトで onを使用しようとしcygwin
ていbash
ます。コードは次のとおりです。
#!/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
私のシステムがインストールされていないためですか?それを確認するにはどうすればよいですか?