[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Problema com aspas duplas e simples dentro do IF
From: |
Leonardo Bernardes |
Subject: |
Re: Problema com aspas duplas e simples dentro do IF |
Date: |
Sat, 15 Aug 2009 17:20:22 -0000 |
User-agent: |
eGroups-EW/0.82 |
Salve Julio,
Eu estava usando do modo que você sugeriu, mas depois de tantos erros, eu
resolvi tentar de uma forma mais primitiva. De fato o erro estava no tr, mas eu
ACHO que não era o tr do teste, mas o do comando. Porque antes de ver sua
mensagem eu resolvi o problema com o seguinte código:
[ -n "$(cat temp.html |tr " " "\n" |grep -iEo "href.*\[^<>\].*jpg")" ] && {
varib="cat temp.html |tr ' ' '\n' |grep -iEo "href.*jpg" |grep -v
"[?/]" |tr \' \" |cut -d\" -f2 |grep -v \' "
}
[ -n "$(cat temp.html |tr " " "\n" |grep -iEo "[[:alnum:]]+.jpg" |grep -vi
"http")" ] && {
varib="cat temp.html |tr ' ' '\n' |grep -iEo "[[:alnum:]]+.jpg" "
}
Ou seja, troquei as aspas duplas do tr por aspas simples, no COMANDO. Mas eu
pensei que não fosse funcionar porque na minha cabeça as aspas simples iriam
tirar o escape \n da sua condição e transformá-lo em caratere normal. Até
agora, aliás, não sei porque isso NÃO aconteceu. Se você puder me explicar
isso, eu agradeço muito.
A propósito, eu tenho os links que você sugeriu (impressos, inclusive) -- eles
são sempre de MUITA valia. Assim que encontrei o problema, procurei lá dentro
alguma referência que pudesse me ajudar, mas não consegui encontrar. O problema
é que eu tava pedindo pro tr substituir o espaço em branco por uma quebra e, no
meu juízo, não havia porque ele não executar isso.
Obrigado pela atenção, abraços
--- Em address@hidden, "Julio C. Neves" <julio.neves@...> escreveu
>
> Fala Leonardo,
> O problema ocorreu qdo vc fechou as aspas logo após o tr. No seu raciocínio,
> vc queria inibir a interpretação do espaço, mas o que vc fez foi justamente
> expor o espaço para o cmd test. (aqueles colchetes que vc usou são o cmd
> test) e por isso o erro (que vc deveria ter mostrado para facilitar o
> pessoal que ajuda) deve ter sido algo como "too many operands". Troque as
> aspas internas por apóstrofos que o peograma funcionará.
>
> De qq forma vc está usando o if na forma das linguagens convencionais, ou
> seja, vc o está usando de uma forma não otimizada. vc poderia fazer o mesmo
> da seguinte forma:
>
> if tr " " "\n" < temp.html |grep -iE "href.*\[^<>\].*jpg"; then
>
>
> Para vc entender o uso do if, que em shell é cmd muito poderoso, dê uma lida
> rápida neste
> texto<http://wiki.softwarelivre.org/TWikiBar/TWikiBarPapo003#O_Comando_if>e
> em sua
> continuação<http://wiki.softwarelivre.org/TWikiBar/TWikiBarPapo004#O_Comando_test>.
> Tenho certeza que será um excelente investimento em know how, que não te
> tomará mais de 10 minutos.
> --
> Abraços,
> Julio
> Cursos de Shell e Zenity?
> - Em SP ligue (11) 2125-4747 (dias 29-30/08 e 12-13/09);
> - Em DF ligue (61) 3223-3000;
> - No RJ ligue (21) 2561-0867;
> - Turmas fechadas em outras cidades ligue (21) 8112-9988.
>