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 --------------------------------------------------------------------- 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
