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