brigadão julio, funcionou perfeitamente. abraços
Julio Cezar Neves - DATAPREVRJ wrote: >Fala Marcos, >na saída da função use return 1, que te gerará o $?=1 e não abortaá o >processo. > >[ ]s, >Julio Cezar Neves >Tel:+55 21 2555-6148 / +55 21 8112-9988 >Fax: +55 21 2555-6154 >http://www.julioneves.com > > >| -----Mensagem original----- >| De: Marcos Braga [mailto:[EMAIL PROTECTED] >| Enviada em: segunda-feira, 2 de janeiro de 2006 11:26 >| Para: [email protected] >| Assunto: [shell-script] sub script >| >| >| feliz ano novo a todos, e vamos à caça das soluções... rsssssss... >| >| seguinte, >| criei um script para envio de mail e como tenho vários scripts a >| executando, separei das demais e estou chamando através de ". >| /caminho/mail.sh", o conteúdo é o seguinte: >| ----- inicio do script >| email=eMail$$.sh >| host=`hostname -s` >| smtp=smtp.mail.com >| data=`LC_ALL=C date "+%a, %d %b %Y %k:%M:%S %z"` >| >| enviaMail() { >| [ -z $remetente ] \ >| && echo nao existe remetente \ >| && exit 1 >| [ -z $destinatario ] \ >| && echo nao existe destinatario \ >| && exit 1 >| echo '#!/bin/bash' > $email >| echo -n "(" >> $email >| echo "echo HELO $host; sleep 1" >> $email >| echo "echo MAIL FROM: $remetente; sleep 1" >> $email >| echo "echo RCPT TO: $destinatario; sleep 1" >> $email >| [ ! -z "$copia" ] && echo "echo RCPT CC: $copia; sleep 1" >> $email >| echo "echo DATA; sleep 1" >> $email >| echo "echo User-Agent: Shell Script via Telnet" >> $email >| echo "echo From: $remetente" >> $email >| if [ -z "$assunto" ]; then >| echo "echo Subject: \"sem assunto\"" >> $email >| else >| echo "echo Subject: $assunto" >> $email >| fi >| echo "echo Date: $data" >> $email >| echo "echo To: $destinatario" >> $email >| [ ! -z "$copia" ] && echo "echo Cc: $copia" >> $email >| echo "echo \"\"" >> $email >| echo "echo \"$anexo\"" >> $email >| echo "echo \".\"; sleep 1" >> $email >| echo "echo \"\"" >> $email >| echo "echo QUIT" >> $email >| echo ") | telnet $smtp 25" >> $email >| chmod +x $email >| ./$email >/dev/null 2>/dev/null >| rm -f $email >| } >| ----- >| >| bom, como podem perceber, no início da função, verifico se existe >| remetente e destinatário, caso o script não encontre essas variáveis, >| ele aborta (exit 1) e dá uma mensagem de erro (nao existe >| remetente), o >| meu problema é que tentei usar o break para não finalizar a >| execução dos >| outros scripts no meio do processo, pois se eu utilizo o >| exit, o script >| aborta por completo não finalizando o restante dos processos somente >| porque não enviou o mail. >| >| alguém já passou por algo parecido e teve que adotar alguma >| solução que >| possa me dar uma luz ? >| >| agradeço, >| marcos braga > --------------------------------------------------------------------- Esta lista não admite a abordagem de outras liguagens de programação, como perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio aviso. --------------------------------------------------------------------- Sair da lista: [EMAIL PROTECTED] --------------------------------------------------------------------- Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net --------------------------------------------------------------------- Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/shell-script/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
