Jak mogę wykonać HTTP GET ze skryptu powłoki Un * x na standardowym systemie OS X? (instalowanie oprogramowania innych firm nie wchodzi w grę, ponieważ musi działać na wielu różnych systemach, nad którymi nie mam kontroli).
Na przykład, jeśli uruchomię serwer Mercurial lokalnie, wykonując serwer hg :
... $ hg serve
Następnie z Linuksa, który ma polecenie wget , wykonuję wget:
... $ wget http://127.0.0.1:8000
--2010-12-31 22:18:25-- http://127.0.0.1:8000/
Connecting to 127.0.0.1:8000... connected.
HTTP request sent, awaiting response... 200 Script output follows
Length: unspecified [text/html]
Saving to: `index.html
A na terminalu, w którym uruchomiłem polecenie „hg służyć” , rzeczywiście widzę, że trafił HTTP GET:
127.0.0.1 - - [30/Dec/2010 22:18:17] "GET / HTTP/1.0" 200 -
Tak więc w Linuksie jednym ze sposobów wykonania HTTP GET ze skryptu powłoki jest użycie wget (jeśli to polecenie jest oczywiście zainstalowane).
Jakie są inne sposoby na zrobienie odpowiednika wgeta ? Szukam w szczególności czegoś, co działałoby na standardowych instalacjach OS X.
Odpowiedzi:
Będę musiał powiedzieć
curl http://127.0.0.1:8000 -o outfile
źródło
-O
lub--remote-name
oflagować automatyczną zmianę nazwy pobranego pliku. np.curl -O http://somehost.org/file.zip
brew install wget
Homebrew to menedżer pakietów dla OSX, analogiczny do yum, apt-get, choco, emerge itp. Pamiętaj, że będziesz musiał także zainstalować Xcode i narzędzia wiersza poleceń. Praktycznie każdy, kto korzysta z wiersza poleceń w OSX, i tak będzie chciał zainstalować te rzeczy.
Jeśli nie możesz lub nie chcesz używać homebrew, możesz również:
Zainstaluj wget ręcznie:
Lub użyj aliasu bash:
źródło
wget
odpowiedź dla początkujących , ponieważ jej jedyna została usunięta przez jej właściciela icurl
jest alternatywą, a nie dosłownym odpowiednikiem.Curl ma tryb, który jest prawie równoważny domyślnemu wgetowi.
To działa tak jak
Jeśli chcesz, możesz dodać to do swojego .bashrc:
Nie jest w 100% kompatybilny, ale działa na najczęstsze użycie wget (IMO)
źródło
for i in `seq 1 <n>` do curl -O <url>;done;
gdzie <n> to liczba operacji, które chcesz iterować, a <url> to adres URL do pobrania.-L
flagę, aby śledzić przekierowania lokalizacji. Możeszcurl -OL <url>
to zrobić.-O
odnosi się również tylko do następnego argumentu, więc aby pobrać wiele adresów URL, musisz użyć czegoś takiego jakcurl -O "$url1" -O "$url2"
lubprintf %s\\n "$url1" "$url2"|xargs -n1 curl -O
.1) na komputerze Mac
2) wklej następujące elementy
3) zamknij, a następnie uruchom go
Otóż to.
źródło
vim /usr/bin/wget
;) haha tylko żartowałem. dzięki za odpowiedź - tak naprawdę nigdy mi się to nie przydarzyło iz jakiegoś powodu nie mam ochoty instalować naparu / fink / cokolwiek, więc chwała za łatwą przenośną odpowiedź.-L
jest ważny do obsługi301
odpowiedzi HTTP . wget obsługuje je domyślnie.Użyj
curl
;źródło
Oto odpowiednik wget systemu Linux dla Mac OS X.
W przypadku systemu Linux, na przykład Ubuntu w wystąpieniu AWS, użyj:
Na komputerze Mac, tj. Do rozwoju lokalnego, użyj tego:
Parametr -o jest wymagany na komputerze Mac do wyświetlania w pliku zamiast na ekranie. Podaj inną nazwę docelową do zmiany nazwy pobranego pliku.
Użyj kapitału -O do zmiany nazwy za pomocą wget. Małe litery -o określają plik wyjściowy dla dziennika przesyłania.
źródło
Możesz zbudować wget na komputerze Mac lub użyć MacPorts, aby zainstalować go bezpośrednio.
To działałoby jak urok, a także możesz zaktualizować do najnowszej wersji, gdy tylko będzie dostępna. Port jest znacznie bardziej stabilny niż napar, choć ma znacznie mniejszą liczbę receptur i porty.
Możesz zainstalować MacPorts
https://www.macports.org/install.php
, możesz pobrać.pkg
plik i zainstalować go.źródło
Zamiast iść z ekwiwalentem, możesz wypróbować „brew install wget” i użyć wget.
Musisz mieć napar zainstalowany na komputerze Mac.
źródło
Możesz
curl
zamiast tego użyć . Jest domyślnie instalowany w/usr/bin
.źródło
wget Prekompilowana wersja binarna Mac
Dla tych, którzy szukają szybkiej instalacji wget na Macu, sprawdź prekompilowany plik binarny Quentin Stafford-Fraser tutaj, który istnieje już od ponad dekady:
https://statusq.org/archives/2008/07/30/1954/
MD5 dla 2008 wget.zip: 24a35d499704eecedd09e0dd52175582
MD5 dla 2005 wget.zip: c7b48ec3ff929d9bd28ddb87e1a76ffb
Brak śmieci make / install / port / brew / curl. Wystarczy pobrać, zainstalować i uruchomić. Działa z systemem Mac OS X 10.3-10.12 +.
źródło