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

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

Problema com aspas duplas e simples dentro do IF


From: Leonardo Bernardes
Subject: Problema com aspas duplas e simples dentro do IF
Date: Sat, 15 Aug 2009 16:18:35 -0000
User-agent: eGroups-EW/0.82

Olá amigos,

Tenho o seguinte código

if [ -n "$(cat temp.html |tr " " "\n" |grep -iEo "href.*\[^<>\].*jpg")" ]; then
        echo cat temp.html |tr " " "\n" |grep -iEo "href.*jpg" |grep -v "[?/]" 
|tr \' \" |cut -d\" -f2 |grep -v \' > templ.txt
 elif [ -n "$(cat temp.html |tr " " "\n" |grep -iEo "[[:alnum:]]+.jpg" |grep 
-vi "http")" ]; then
        echo cat temp.html |tr " " "\n" |grep -iEo "[[:alnum:]]+.jpg" > 
templ.txt
else 
        exit
fi

Usei o echo jogando o comando pra um arquivo porque se eu uso uma variável, ele 
não funciona. Em ambos os casos, ele lê apenas a primeira parte do comando. A 
solução seria: usar aspas duplas ou simples pra formar um BLOCO. Mas se eu faço 
isso, depois, quando chamo o eval ou quando peço pra ler o arquivo templ.txt, 
ele simplesmente dá erro. Como se as aspas duplas ou simples não funcionassem 
dentro do IF

Fora do IF, se eu uso uma variável assim
templ='cat temp.html |tr " " "\n" |grep -iEo "[[:alnum:]]+.jpg"'
Ela funciona perfeitamente, mas se eu fizer o mesmo dentro do IF

if [ -n "$(cat temp.html |tr " " "\n" |grep -iEo "href.*\[^<>\].*jpg")" ]; then
        varib='cat temp.html |tr " " "\n" |grep -iEo "href.*jpg" |grep -v 
"[?/]" |tr \' \" |cut -d\" -f2 |grep -v \''
 elif [ -n "$(cat temp.html |tr " " "\n" |grep -iEo "[[:alnum:]]+.jpg" |grep 
-vi "http")" ]; then
        varib='cat temp.html |tr " " "\n" |grep -iEo "[[:alnum:]]+.jpg"'
else 
        echo -e "\e[32mNenhum dos dois\e[0m"
fi

Dá erro (em outro lugar que não tem nada a ver com esse código):
: unexpected EOF while looking for matching `''
: line 150: syntax error: unexpected end of file

O que eu faço? Há mesmo algum uso especial das aspas dentro do IF?




reply via email to

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