Uzyskaj wyjście wget do zmiennej

14

Jak mogę to zrobić? Próbuję tego w ten sposób RESULT = `wget $ URL`

PS - Jakieś zalecane źródła do nauki skryptów powłoki?

Popiół
źródło

Odpowiedzi:

22

Co powiesz na:

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

Edycja: Tak, to działa.

Oli
źródło
2
Po co kolejny bieg -qO?
Ashfame,
2
Okaże mu gdzieś wyprowadzać, -każe Owysyłać go do bieżącego strumienia. I qmówi wget, aby nie zawierał żadnej z informacji „Łączenie z xxx ...”.
Oli
Miałem na myśli to, że kiedy -qjest cichy przełącznik i -Osłuży do nadania nazwy plikowi, w którym chcemy zapisać dane wyjściowe. Z tego, co czytałem, możemy napisać wiele przełączników razem, jeśli wszystkie nie wymagają argumentów. To -qOma sens, ale co wtedy robi ostatnia kreska?
Ashfame,
1
To -Ojest argument. Wskazuje, gdzie zapisać wynik pobierania (w tym przypadku: powrót do bieżącego strumienia).
Oli
24

Preferowanym sposobem byłoby

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

(mała nazwa zmiennej $()zamiast ``i cytowane rozwinięcie zmiennej wynikowej).

W przypadku skryptów powłoki za pomocą bash i / lub POSIX sh można przeczytać http://mywiki.wooledge.org/BashGuide . I jest o wiele więcej przydatnych zasobów na tej wiki oraz na http://wiki.bash-hackers.org/ . Obawiam się, że większość innych zasobów związanych ze skryptami powłoki to śmieci, więc najlepiej trzymać się tych dwóch.

geirha
źródło
Dzięki za wkład! Czy możesz wyjaśnić trochę, co jest nie tak z cytatami tutaj?
Ashfame,
@Ashfame Wyjaśnia to główny powód, dlaczego należy zawsze podawać rozszerzenia: mywiki.wooledge.org/Arguments
geirha
Dzięki! Dodałem do zakładek zasoby. Nauczę się stamtąd. :)
Ashfame
Dlaczego większość innych zasobów na temat śmieci skryptów powłoki?
Big McLargeHuge
@Koveras skąd mam wiedzieć? Ludzie prawdopodobnie czytają przewodnik po ABS, a następnie decydują, że podzielą się swoją nową wiedzą ze światem w jeszcze jednym tandetnym samouczku.
geirha
0

w WGET (dla WINDOWS BATCH) wygląda to tak:

OtherApplication -arg1 -arg2 > temp.txt
set /p MyVariable=<temp.txt
T.Todua
źródło