break: nur in einer `for'-, `while'- oder `until'-Schleife sinnvoll

break: nur in einer `for'-, `while'- oder `until'-Schleife sinnvoll

Fehlerbehebung bei einer Fehlerausgabe am Ende eines Skripts.

Das...

# 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

Produziert...

/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'

Irgendwelche Ideen für eine Alternative break;;in diesem Fall?

Antwort1

Nichts tun :) Das heißt, entweder „zum Beispiel“ trueoder „ :anstelle von“ verwenden breakoder die Zeile ganz entfernen.

Eine bessere Lösung wäre, tatsächlich eine whileSchleife zu verwenden:

while true
do
    [your code]
done

Auf diese Weise breakmacht das, was Sie wollen, und Sie beheben einen Fehler: Was passiert, wennrsn nichtbeginnen mit [YyNn]?

verwandte Informationen