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]?

Связанный контент