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

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

RE: RES: [shell-script] listar arquivos dentro de diretorios?


From: MrBiTs
Subject: RE: RES: [shell-script] listar arquivos dentro de diretorios?
Date: Tue, 10 May 2005 15:00:46 -0300

/*
 Li numa apostila do Piter Punk que qnd colocamos um \ antes de comando ele
é ignorado pelo shell, tipo para colocar um $HOME numa frase, poderia ficar:


 echo "A variavel \$HOME mostra o conteudo de $HOME"

Então, o \ não deveria ignorar o ; ???
*/

"Ignorar" nao seria bem o termo... Acho que "proteger" seria melhor. Veja
só: a opcao exec do find exige um escopo de comando. Esse escopo é
delimitado pelo ; ( ponto e virgula ). Entretanto, ponto e virgula TAMBÉM é
interpretado pelo shell como um separador de comandos. Voce pode fazer algo
como 

$ cd /tmp ; rm -rf orbit* ; cd ~

E cada um dos comandos será executado, como se vc tivesse digitado:

$ cd /tmp [ enter ]
$ rm -rf orbit* [ enter ]
$ cd ~ [ enter ]

Se vc nao "escapa" ou "protege" o ; no final do find, o shell vai pensar que
existe um comando apos o ;, nao vai fechar o escopo de comando e vai falhar.
Entao, o \; no final da opcao exec do comando find PROTEGE o ; de ser
interpretado pelo shell. No seu exemplo, $HOME é uma variavel que, se
utilizada "sem protecao", será interpretada pelo shell. A \ serve para
proteger a STRING $HOME de ser interpretada. Mesmo efeito seria:

$ echo A variavel '$HOME' possui o valor de $HOME

Enquanto que 

$ echo A variavel "$HOME" possui o valor de $HOME

Enquanto "$HOME" ou $HOME sao interpretadas pelo shell, '$HOME' nao :)



reply via email to

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