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

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

Re: [shell-script] duvidas


From: Flavio Torres
Subject: Re: [shell-script] duvidas
Date: Wed, 04 Oct 2006 22:36:42 -0300
User-agent: Thunderbird 1.5.0.7 (Windows/20060909)

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
 
Tiago Barcellos Peczenyj escreveu:
>
> ok, eu entendi o -E , para interpretar um extended regular pattern mas o
> ${1+"$@"} faz o que ? até agora não saquei...
>

Salve Tiago,

$* e $@ são semelhantes, porém $@ pega os parâmetros intactos sem
interpretação ou expansão.

Veja um exemplo que botei aqui: http://pastebin.com/800406

Agora, com base nisto e nos meus testes...

Eu alterei a sintaxe ${1+"$@"} para ${1}, para ${1+$*}, para
${1+"$*"}, para ${1+$@}  funcionou tranquilo com a expressão:

# cat /proc/bus/input/devices | egrep
"^I.*Bus=0011.*Vendor=.*Product=00.*Version=.*"
I: Bus=0011 Vendor=0001 Product=0001 Version=ab41
I: Bus=0011 Vendor=0002 Product=0007 Version=0000

E tambem assim ( com um novo subshell ):

root@amenhotep:~ #cat /proc/bus/input/devices | egrep
"^I.*Bus=0011.*Vendor=.*Product=00.*Version=.*\
.*" | egrep "^I.*Version=00.*"


Porém com as mesmas sintaxes e a expressao: # egrep "^aa" ble.txt ele
fica aguardando stdin, exceto para ${1+$*} ( sem "quote", como podera
ver no exemplo do pastebin).

Testei também trocando ${1+$*} para ${1+${2}}, porém o shell nao
entendeu, e fica pedindo o PATTERN para o grep.

Fiz varios outras simulações que até eu me perdi...

Com o alias funcionou para:

$alias bla="grep -E ${1+$@}", ou ${1}, ou ${1+"$*"} ( o que deveria
apresentar erro ou ficar aguardando o stdin, nao aconteceu )
$cat /proc/bus/input/devices | bla
"^I.*Bus=0011.*Vendor=.*Product=00.*Version=.*"
$ bla ^aa ble.txt

Conclusão: Para este caso do egrep com exec só podemos usar a variável
especial $* sem a protecao (quote) " ", ja com o alias, tanto faz...

- --

[]'s

Flavio Torres - Administrador de Sistemas
____________________________________________________________________
PGP/GPG: KeyID 0x7720DBDE
http://www.digitalinfo.com.br/gpg/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (MingW32)
 
iD8DBQFFJGGqNRQApncg294RAn+eAKD0CdsWf0O3p2VA4C+NpXDB4njg3gCfXlx2
Pa9ZFPPtPlmykgAuWjS+M+Y=
=ocKw
-----END PGP SIGNATURE-----




reply via email to

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