shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] duvida com variavel/redirecionamento


From: MrBiTs
Subject: Re: [shell-script] duvida com variavel/redirecionamento
Date: Thu, 13 Oct 2005 07:04:34 -0300
User-agent: Mozilla Thunderbird 1.0.6 (X11/20050716)

/*
-cut-----------
 #!/bin/bash
 echo -e "compactando diretorios\n" >>log.txt
 tar etc.tar /etc /naoexiste >>log.txt 2>>logerro.txt
 -cut-----------

 ...desta forma funciona perfeitamente, os logs vao parqa logbom.txt e
os erros
 vao para logerro.txt, agora se eu crio uma variavel e coloco o
 redirecionamento dentro dela...

 -cut-----------
 #!/bin/bash
 LOG=">>log.txt"
 LOGERRO="2>>logerro.txt"
 echo -e "compactando diretorios\n" $LOG
 tar etc.tar /etc /naoexiste $LOG $LOGERRO
 -cut-----------

 ... a coisa nao funciona, alguma sugestao ?!
*/

Rodei o seu segundo script com um set -x antes e tive a seguinte saida:

+ LOG='>>log.txt'
+ LOGERRO='2>>logerro.txt'
+ echo -e 'compactando diretorios\n' '>>log.txt'
compactando diretorios
 >>log.txt
+ tar cvf etc.tar /etc /naoexiste '>>log.txt' '2>>logerro.txt'

E, no final:

tar: naoexiste: Cannot stat: No such file or directory
tar: >>log.txt: Cannot stat: No such file or directory
tar: 2>>logerro.txt: Cannot stat: No such file or directory
tar: Error exit delayed from previous errors

Veja que as variáveis são tratadas como strings, e não como comandos.
>>log deveria significar "envie todas as mensagens para o arquivo
log.txt" e não uma string composta de dois sinais de maior, as letras
log, o ponto e as letras txt. Uma maneira de fazer isso seria:

#!/bin/bash

LOG="log.txt"
LOGERRO="logerro.txt"
echo "Compactando diretorios" >> $LOG
tar cvf etc.tar /etc /naoexiste >>$LOG 2>>$LOGERRO


-- 
"There is still more Unix-nature in one
line of shell script than there is in
ten thousand lines of C"
Master Foo - Hsh-bng Province - 530  BC

"Programar Shell Script é a coisa mais
gostosa que você pode fazer vestido"
Mestre J. C. Neves - 10/08/2005

         \\|||//
         (.) (.)
----ooOO--( )--OOoo-----
      MrBiTs
http://www.mrbits.com.br
  address@hidden
------------------------


reply via email to

[Prev in Thread] Current Thread [Next in Thread]