[Ubuntu-BR] Como tratar variaveis que tenham "&" no meio de uma string em bash script ?

Doritos doritos5k em yahoo.com.br
Sexta Junho 7 14:57:55 UTC 2013


Escape o "&" com "\"

Errado:
wget 
http://search.gmane.org/?query=Teste&author=&group=&sort=relevance&DEFAULTOP=and&query=


O "&" é separador de comandos.
"cp 1 2 & rm 1"
Copia 1 para 2 e apaga 1

Correto:

wget 
http://search.gmane.org/?query=Teste\&author=\&group=\&sort=relevance\&DEFAULTOP=and\&query=

Ou com aspas
wget 
"http://search.gmane.org/?query=Teste&author=&group=&sort=relevance&DEFAULTOP=and&query="


On 07-06-2013 09:32, hamacker wrote:
> Ola pessoal
>
> Criei um script para automação, onde o camarada cola uma url da internet e
> o script trata sozinho de observar o que é o link, contudo quando a url
> possui "&" o script simplesmente pára.
>
> Isso ocorre porque ele jogou para background o processo quando tinha de
> tratar a string, quando deveria tratar a string literalmente.
>
> debugando o script com -X, noto que a paralização ocorre justamente no read
> arquivo abaixo :
>
>    echo "Digite ou cole a url onde se encontra a publicação que pretende
> editar:"
>    echo "Ou apenas [.] para sair."
>    while true ; do
>      read url
>      [ "$url" = "." ] && break
>      testfile=`echo "$url" |cut -d"=" -f4`
> (....)
>
> Se não houvesse interação eu enfiava escapes nesses caracteres especiais,
> contudo não há como determinar que caracteres serão colados.
> Então eu preciso da ajuda de alguem mais experiente do que eu para saber o
> que devo fazer nessa situação.
>
> Qualquer ajuda é bem vinda.
>





More information about the ubuntu-br mailing list