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

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

Re: [shell-script] O que é "Shell Script"?


From: Eliphas Levy Theodoro
Subject: Re: [shell-script] O que é "Shell Script"?
Date: Wed, 9 Feb 2005 19:42:52 -0200 (BRST)

$ A=500.175
$ awk "BEGIN { print ($A > 500) ? \"true\" : \"false\" }"
true

Alguém esqueceu o BEGIN ;)

Isso é simplesmente um problema de sintaxe. O awk não aceita aspas
simples como delimitador de strings, e o shell só faz substituição de
variáveis na linha de comando se não estiverem dentro de aspas
simples.

O perl também tem esse problema. Se você fizer com aspas simples, o
*SHELL* não vai substituir a variável. O awk/perl não tem nada a ver
com isso...

$ perl -e "if ($A gt 500) { print \"true\" } else {print 'false'}"
true
$ perl -e 'if ($A gt 500) { print "true" } else {print "false"}'
false


-- 
Eliphas

MrBiTs, @ 18:51:
>> Hmmm... Não consigo imaginar uma interação entre a shell e o AWK que
>> não possa ser feita de maneira parecida entre a shell e o Perl.  Você
>> poderia nos mostrar um ou dois exemplos do tipo de interação que você
>> está imaginando?
>
> Respondi uma questao sobre comparacao de valores com casas decimais onde
> usei awk, shell "puro" e perl. Em perl eu fiz algo como:
>
> $ A=500.175
> $ perl -e "if ( $A gt 500 ) ....
>
> Aqui temos interacao do perl com a variavel A, definida no shell
>
> Depois, fiz algo similar em awk
>
> $ A=500.175
> $ awk '{ print ($A > 500) ? "true" : "false" }'
>
> Quando faco isso, o awk fica aguardando a digitacao de um valor.
> Entretanto, a expressao
>
> $ echo $A | awk '{ print ($1 > 500) ? "true" : "false" }'
>
> funciona sem problemas
>
> A pergunta é ( e é uma pergunta de uma pessoa totalmente leiga em awk,
> portanto os masters me corrijam, por favor ): quem interagiu melhor com
> o shell nesse caso : perl ou awk ?
>
> IMHO, foi o perl, que leu a variavel A. De novo, corrijam-me se for
> possivel fazer o mesmo com awk. Com Sed eu sei que é possivel. Sed tbm
> le variaveis do shell.

[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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