私はgetoptsを使用してスクリプトに取り組んでおり、コマンドには引数を任意の順序で含めることができます。有効な引数-aとファイル名はstuff.txt. 問題は、次のようなコマンドを実行したときです。
program.sh -a -b stuff.txt -c -d
私のコードは引数-aを処理-bし、ファイル名に到達するまで問題ありません。その後、処理を停止し、引数-cに触れません-d。私のコードは次のようになります。
while getopts ":a:b:c:d" opt; do
case "$opt" in
a) # do something;;
b) # do something;;
/?) echo ERROR
exit 1;;
esac
done
while私はループの外側でファイルに取り組んでいますが、うまく登録されているようです。