Bem,

O $? vai ter o valor que for retornado pelo tar (ou qualquer comando que 
seja executado), independente de qualquer mensagem de erro ou sucesso 
que seja gerada. $? sempre guarda o return code do último comando ou 
script executado.

Uma coisa que vi com ksh é que se você deseja concatenar as mensagens de 
stdout num arquivo ( >> $log) e logo depois deseja redirecionar stderr 
para o mesmo arquivo concatenando-os, deve usar "2>> $log" e não "2>&1". 
Mas no bash não sei como ficaria, estou falando pelo ksh.

Abs

William José Vicente escreveu:
> Adriano,
>
>    acho que você não precisa usar:
>        cmdExe=`tar -zcf $loc$ban.tar.gz $tmp >> $log 2&>1`
>        if [ "$cmdExe" ];
>
>    Pode usar:
>         tar -zcf $loc$ban.tar.gz $tmp >> $log 2>&1 # Para o redirecionamento
> de erro para stdout use 2>&1
>         if [ $? -ne 0 ] # Na verificação anterior eu acho que nunca aparecia
> erro pois o retorno do comando tar (stdout e stderr foram colocadas no
> arquivo de log, então a variável ficava sempre com "" (nunca entrando no
> then).
>
>    Com estas alterações parece que funcionou. Espero ter ajudado.
>
> Abraços,
>
>    William
>
> Em 23/01/07, Adriano Carneiro de Moura <[EMAIL PROTECTED]>
> escreveu:
>   
>>   pessoal este é um peçao do código ...
>>
>> # diretório temporário
>> tmp="/tmp/bk_mysql_$ban"
>> # arquivo log
>> log="/tmp/bk_mysql_$ban/$ban.log"
>> # arquivo com instruções sql para restaurar o banco
>> res="/tmp/bk_mysql_$ban/restaura_$ban.sql"
>> # leia-me
>> lei="/tmp/bk_mysql_$ban/leia-me"
>> # local onde o arquivo de backup será gravado
>> loc="/home/samba/temp/"
>>
>> # compactando
>> cmdExe=`tar -zcf $loc$ban.tar.gz $tmp >> $log 2&>1`
>> if [ "$cmdExe" ];
>> then
>> echo "Erro ao tentar compactar diretório $tmp"
>> exit
>> fi
>>
>> # fim (problema depois do 2>>$log
>> echo "Backup realizado com sucesso !!!" >> $log
>>
>> estou com um problema é que á ultima linha não funciona
>> echo "Backup realizado com sucesso !!!" >> $log
>>
>> depois do comando tar não consigo mais escrever no log ($log)
>>
>> o que poder ser ?
>>
>> __________________________________________________
>> Fale com seus amigos de graça com o novo Yahoo! Messenger
>> http://br.messenger.yahoo.com/
>>
>> [As partes desta mensagem que não continham texto foram removidas]
>>
>>  
>>
>>     
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>
>
> ---------------------------------------------------------------------
> 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
> ---------------------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
>  
> Links do Yahoo! Grupos
>
>  
>
>
>
>   

Responder a