[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?
- Problema com aspas duplas e simples dentro do IF,
Leonardo Bernardes <=