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?

Odpowiedzi:


22

Co powiesz na:

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

Edycja: Tak, to działa.


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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.