[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
- Dúvida com return,
Willy Romão <=