Obter saída do wget para uma variável


14

Como eu posso fazer isso? Estou tentando assim RESULT = `wget $ URL`

PS - Também existem fontes recomendadas para aprender scripts de shell?

Respostas:


22

E se:

RESULT="`wget -qO- http://example.com`"
echo $RESULT

Edit: Sim, isso funciona.


2
Por que outro traço depois -qO?
Ashfame 10/02

2
Odiz para ele emitir em algum lugar, -diz Opara emitir para o fluxo atual. E qdiz ao wget para não incluir nenhuma das informações "Conectando a xxx ...".
Oli

O que eu quis dizer foi que quando -qé a opção silenciosa e -Oé usado para dar o nome do arquivo onde queremos que a saída seja salva. Pelo que tenho lido, podemos escrever várias opções juntas, se todas elas não exigirem argumentos. Então -qOfaz sentido, mas o que o último traço faz?
Ashfame 10/02

1
É -Oargumento. Indica onde gravar a saída do download (neste caso: de volta ao fluxo atual).
Oli

24

A maneira preferida seria

result=$(wget -qO- http://example.com)
echo "$result"

(nome da variável em minúscula, em $()vez de ``e expansão citada da variável de resultado).

Para scripts de shell com bash e / ou POSIX sh, http://mywiki.wooledge.org/BashGuide é o guia para leitura. E há muito mais recursos úteis nesse wiki e em http://wiki.bash-hackers.org/ . Receio que a maioria dos outros recursos em scripts de shell sejam lixo, por isso é melhor ficar com esses dois.


Obrigado pela sua contribuição! Você pode explicar um pouco o que há de errado com as aspas aqui?
Ashfame 11/02

@Ashfame Isto explica a razão principal de porque você deve sempre citar expansões: mywiki.wooledge.org/Arguments
geirha

Obrigado! Eu marquei os recursos. Eu vou aprender a partir daí. :)
Ashfame 12/02

Por que existem outros recursos no lixo de scripts de shell?
David Kennedy

@Koveras como devo saber? As pessoas provavelmente leem o guia do ABS e decidem compartilhar seus novos conhecimentos com o mundo com mais um tutorial de baixa qualidade.
Geirha 03/10/2015

0

no WGET (para WINDOWS BATCH), existe o seguinte:

OtherApplication -arg1 -arg2 > temp.txt
set /p MyVariable=<temp.txt
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.