break: `for'、`while'、または `until' ループ内でのみ意味を持ちます

break: `for'、`while'、または `until' ループ内でのみ意味を持ちます

スクリプトの最後に出力されるエラーのトラブルシューティング。

これ...

# We now request that the user restarts their server...
read -e -p "Restart your server now to complete the install (y/n)? " rsn
    case $rsn in
        [Yy]* ) break;;
        [Nn]* ) exit;
    esac
done

生産します...

/dev/fd/63: line 446: break: only meaningful in a `for', `while', or `until' loop
/dev/fd/63: line 449: syntax error near unexpected token `done'
/dev/fd/63: line 449: `done'

break;;この場合の代替案について何かアイデアはありますか?

答え1

何もしないでください :) つまり、たとえば を使用するかtrue:の代わりにを使用するbreakか、または行を完全に削除します。

より良い解決策は、実際にループを使用することですwhile

while true
do
    [your code]
done

この方法では、breakあなたが望むことを実行し、バグを修正します。rsn しない皮切りに[YyNn]

関連情報