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

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

Re: [shell-script] Como armazenar a saida de erro em variável?


From: mop
Subject: Re: [shell-script] Como armazenar a saida de erro em variável?
Date: Sun, 18 May 2008 03:40:11 -0300

Legal você reforçar o detalhe das aspas!
Com freqüência os mais novos esquecem que em alguns comandos,
sem as aspas,
os caracteres consecutivos 
com exemplar contido em IFS
são substituidos por um único espaço.


Apenas acrescentaria, que vejo o ENTER citado como intrínseco ao echo.
Aquele do teclado, apenas avisa ao shell para "entrar" o comando digitado.
Apesar de uma distração óbvia, para os novatos pode confundir.

Até escrevo, mais pelo efeito que esse "0a" tem, quando está envolvido um
md5sum, wc -c, ${#VAR}, etc. e que costuma nos fazer perder mais uns fios de
cabelo até achar o "bug". Assim, reforçando:

$ echo $IFS|od -An -tx1
 0a
$ echo "$IFS"|od -An -tx1
 20 09 0a 0a
$ echo -n "$IFS"|od -An -tx1
 20 09 0a
$ printf "$IFS"|od -An -tx1
 20 09 0a
$ printf '$IFS'|od -An -tx1
 24 49 46 53
$ printf "$IFS\r"|od -An -tx1                                        
 20 09 0a 0d

Para aqueles que costumam esquecer o efeito das aspas e do apóstrofo a 
recomendação é brincar um pouco no prompt (pela praticidade) para tentar
memorizar melhor esse comportamento do shell. O resultado é mais efetivo
ao fazer isso quando realmente se está a precisar desse conhecimento,
custando apenas alguns minutos, que são amplamente recuperados,
com juros, posteriormente.



------------------------------------------
>From: "Julio C. Neves"
>
>$ echo "$IFS" | od -h
>0000000 0920 0a0a
>
>O od -h de dá um dump em hexadecimal, onde:
>
>09 - <TAB>
>20 - <espaço em branco>
>0a - <ENTER>
>o segundo 0a foi o <ENTER> que dei ao final da linha.



reply via email to

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