Usando o comando break como argumento para funcionar [closed]

0

Que tal usar assim solução?

Funções executadas em loop (ciclo?). Nesse loop - eu tenho outra função que também usa loop. Quando a segunda função NÃO obtiver resposta do usuário - envie break 2 para parar o loop e prossiga com as ações do script principal.

A função usa variáveis configuradas no arquivo.

Então, é uma boa idéia usar variáveis como parâmetros para funções?

    
por setevoy 29.10.2013 / 15:16

1 resposta

2

Uma alternativa que pode ser mais limpa é ter answer retornar 0 ou retornar 1, dependendo se o usuário disse yes ou no . Em seguida, teste o valor de answer no lugar em que você o chama e só execute a ação se answer retornar 0.

Com base no seu script anterior, seria algo parecido com isto:

while tomcat_running && user_wants_to_stop_tomcat; do
    echo "$tomcat_status_stopping"
    kill $RUN
    sleep 2
done

function tomcat_running() {
    check_tomcat_status
    [ -n "$RUN" ]
}

function user_wants_to_stop_tomcat() {
    answer "WARNING: Tomcat still running. Kill it? "
}

function answer() {
    while true; do
        printf "$1"
        read response
        case $response in
        [yY][eE][sS]|[yY])
            return 0
            ;;
        [nN][oO]|[nN])
            return 1
            ;;
        *)
            printf "Please, enter Y(yes) or N(no)!\n"
            ;;
        esac
    done
}
    
por 29.10.2013 / 16:13