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