break: significativo apenas em um loop `for', `while' ou `until'

break: significativo apenas em um loop `for', `while' ou `until'

Solução de problemas de saída de erro no final de um script.

Esse...

# 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

Produz...

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

Alguma idéia de uma alternativa break;;neste caso?

Responder1

Não faça nada :) Ou seja, use por exemplo trueou :em vez de breakou remova a linha completamente.

Uma solução melhor seria usar um whileloop:

while true
do
    [your code]
done

Dessa forma, ele breakfaz o que você quer e você corrige um bug: O que acontece sersn nãocomeçar com [YyNn]?

informação relacionada