4
このオプションは、初めて使用されたときのみ機能し、その後は無視されます。オプションを使用しないとリセットされるようです。初めてのオプションを渡すときgetoptsはなぜ初めて動作するのですか?
testopts() {
local var="o false"
while getopts "o" option; do
case "${option}" in
o)
var="o true"
;;
esac
done
echo $var
}
それを実行している、それだけでtrueを返す:
は、ここに私の機能です。
OPTIND=1
機能がで実行されているので、それ以外の場合、シェル関数の連続呼び出しがこのバックをリセットされていません:あなたは、あなたの関数の先頭に次の行を追加する必要が
$ testopts o false $ testopts -o o true $ testopts -o o false
ありがとうございました! 2分で受け入れる –