shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Dúvida com return


From: Willy Romão
Subject: Dúvida com return
Date: Mon, 03 Mar 2014 20:05:24 -0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.3.0

Senhores,

Estou com dúvida na utilização do return em certos casos, talvez vocês poderiam me ajudar a entender:

Caso comum do uso do return:

funcao()
{
    echo "Essa eh minha funcao"
    return 1
echo "Esse echo nunca vai ser executado, pq o return ja vai retornar o valor 0 para quem chamou a funcao"
}

A saída dessa função, será apenas o primeiro echo, e a variável $? vai ter o valor 1 do retorno.

Até aí, entendido. O caso que eu estou tendo problema:

funcao()
{
    usuario=$1

    ls /home |
    while read diretorio; do

        if [[ ${diretorio} = ${usuario} ]]; then
            echo "Existe o diretorio do usuario"
            return 0
        fi

    done

    echo "O diretorio desse usuario nao existe"
    return 1
}

Nesse caso, quando a variavel ${diretorio} fosse igual a ${usuario}, deveria executar o comando (echo "Existe o diretorio do usuario") e depois o return 0, saindo da funcao e retornando 0 para quem chamou. Mas isso não acontece, o while continua e acaba chegando na mensagem de erro e no retorno 1. Por que isso acontece?

*A função é uma analogia, o caso real é diferente.

Obrigado a todos,

Willy Romão


reply via email to

[Prev in Thread] Current Thread [Next in Thread]