Olá Rafael, > estou com um probleminha com o for abaixo: > > - - - - - - - - - - - - - - - - - - - - - - - - - - - - > diff=3 > > for ((i=1; i<=$diff; i++)) > do > cmd 1 > cmd 2 > > funcao $a $b > done > > instrucaoDepoisDoFor > a primeira iteracao do for funciona, ele executa os comandos e entra na > funcao, executa tudo que deveria executar na funcao mas quando ele acaba as > instrucoes da funcao ele retorna direto para instrucaoDepoisDoFor
Fiz um pequeno script na tentativa de reproduzir o seu problema, mas ele não se comportou mal, como no seu caso. O for executou quatro iterações, a função foi chamada quatro vezes e por fim o comando depois do for, que também é uma função, foi executado numa boa. Veja abaixo o que acontece: $ cat teste #!/bin/bash diff=3 foraDoFor(){ mkdir diretorio } funcao(){ echo -e "Argumento Um: $1 || Argumento Dois: $2 \n" } ### For problemático for ((i=0;i<=$diff;i++)){ echo "primeiro" echo "segundo" funcao terceiro quarto } foraDoFor $ ./teste primeiro segundo Argumento Um: terceiro || Argumento Dois: quarto primeiro segundo Argumento Um: terceiro || Argumento Dois: quarto primeiro segundo Argumento Um: terceiro || Argumento Dois: quarto primeiro segundo Argumento Um: terceiro || Argumento Dois: quarto > sera que preciso retornar algo na minha instrucao para ele saber que tem que > continuar dentro do for ? Se a função chamada dentro do for tiver um exit 0 no final, aí sim só a primeira execução será realizada, mas a função externa não vai. Se ao invés do exit 0 houver um return 0, o comportamento também é o mesmo que apresentei acima. A não ser que eu tenha representado mal o seu problema com meu script (fiz tudo bem simples, claro). Nesse caso seria interessante você repassar algum snippet do código real para ver se a gente encontra algum problema. Abraços, Moacir Filho -- =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Moacir da Cruz Souza Filho -Analista de Sistemas: Suporte Unix Avançado Serviço Federal de Processamento de Dados -Mestrando em Ciências da Computação Universidade de Brasília -Bacharel em Engenharia da Computação Escola Politécnica de Pernambuco Universidade de Pernambuco -Técnico em Eletrônica Escola Técnica Federal de Pernambuco -Linux user #449600 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Página pessoal: http://moacir.souza.googlepages.com =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=