[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