Wie kann ich ein HTTP-GET aus einem Un * x-Shell-Skript auf einem Standard-OS X-System ausführen? (Die Installation von Software von Drittanbietern ist keine Option, da diese auf vielen verschiedenen Systemen ausgeführt werden muss, auf die ich keine Kontrolle habe.)
Zum Beispiel, wenn ich den Mercurial-Server lokal starte und einen hg-Aufschlag mache :
... $ hg serve
Und dann von einem Linux, der die hat wget Befehl ich eine 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
Und auf dem Terminal, in dem ich den Befehl "hg serve" gestartet habe , kann ich tatsächlich sehen, dass ein HTTP-GET seinen Weg gefunden hat:
127.0.0.1 - - [30/Dec/2010 22:18:17] "GET / HTTP/1.0" 200 -
Unter Linux besteht eine Möglichkeit, ein HTTP-GET über ein Shell-Skript auszuführen , darin, wget zu verwenden (sofern dieser Befehl natürlich installiert ist).
Welche anderen Möglichkeiten gibt es, um das Äquivalent eines Wget zu tun ? Ich suche insbesondere nach etwas, das bei Standardinstallationen von OS X funktioniert.
Antworten:
Ich werde sagen müssen
curl http://127.0.0.1:8000 -o outfile
quelle
-O
oder--remote-name
markieren. zBcurl -O http://somehost.org/file.zip
brew install wget
Homebrew ist ein Paketmanager für OSX analog zu yum, apt-get, choco, emer usw. Beachten Sie, dass Sie auch Xcode und die Befehlszeilentools installieren müssen. Praktisch jeder, der die Befehlszeile in OSX verwendet, möchte diese Dinge trotzdem installieren.
Wenn Sie Homebrew nicht verwenden können oder wollen, können Sie auch:
Installieren Sie wget manuell:
Oder verwenden Sie einen Bash-Alias:
quelle
wget
Antwort gibt, da die einzige andere von ihrem Besitzer gelöscht wurde undcurl
eher eine Alternative als ein wörtliches Äquivalent ist.Curl hat einen Modus, der fast dem Standard-Wget entspricht.
Das funktioniert genauso wie
Und wenn Sie möchten, können Sie dies zu Ihrer .bashrc hinzufügen:
Es ist nicht 100% kompatibel, funktioniert aber für die gängigste Wget-Nutzung (IMO).
quelle
for i in `seq 1 <n>` do curl -O <url>;done;
Dabei ist <n> die Häufigkeit, mit der Sie iterieren möchten, und <url> die URL, die abgerufen werden soll.-L
Flag hinzufügen , um Standortumleitungen zu folgen. Sie können das verwendencurl -OL <url>
, um das zu tun.-O
gilt auch nur für das nächste Argument. Um mehrere URLs herunterzuladen, müssen Sie so etwas wiecurl -O "$url1" -O "$url2"
oder verwendenprintf %s\\n "$url1" "$url2"|xargs -n1 curl -O
.1) auf Ihrem Mac-Typ
2) Fügen Sie Folgendes ein
3) schließen und dann ausführbar machen
Das ist es.
quelle
vim /usr/bin/wget
;) haha nur ein Scherz. Vielen Dank für die Antwort - das ist mir nie wirklich in den Sinn gekommen und aus irgendeinem Grund habe ich keine Lust, Brew / Fink / was auch immer zu installieren, also ein großes Lob für die einfache tragbare Antwort.-L
ist wichtig für den Umgang mit http-301
Antworten. wget behandelt sie standardmäßig.Verwenden Sie
curl
;quelle
Hier ist das Mac OS X-Äquivalent zu Linux's Wget.
Verwenden Sie für Linux, z. B. Ubuntu auf einer AWS-Instanz, Folgendes:
Verwenden Sie auf einem Mac, dh für die lokale Entwicklung, Folgendes:
Der Parameter -o wird auf einem Mac für die Ausgabe in eine Datei anstelle des Bildschirms benötigt. Geben Sie einen anderen Zielnamen zum Umbenennen der heruntergeladenen Datei an.
Verwenden Sie Großbuchstaben -O zum Umbenennen mit wget. Kleinbuchstaben -o gibt die Ausgabedatei für das Übertragungsprotokoll an.
quelle
Sie können wget entweder auf dem Mac-Computer erstellen oder mit MacPorts direkt installieren.
Dies würde wie ein Zauber funktionieren, außerdem können Sie auf die neueste Version aktualisieren, sobald diese verfügbar ist. Port ist viel stabiler als Brew, obwohl es viel weniger Formel und Ports gibt.
Sie können MacPorts installieren, indem
https://www.macports.org/install.php
Sie die.pkg
Datei herunterladen und installieren.quelle
Anstatt mit Äquivalent zu arbeiten, können Sie "Brew Install Wget" ausprobieren und wget verwenden.
Sie müssen Brew auf Ihrem Mac installiert haben.
quelle
Sie könnten
curl
stattdessen verwenden. Es ist standardmäßig in installiert/usr/bin
.quelle
wget Precompiled Mac Binary
Wenn Sie nach einer schnellen wget-Installation auf einem Mac suchen, lesen Sie hier die vorkompilierte Binärdatei von Quentin Stafford-Fraser, die es seit über einem Jahrzehnt gibt:
https://statusq.org/archives/2008/07/30/1954/
MD5 für 2008 wget.zip: 24a35d499704eecedd09e0dd52175582
MD5 für 2005 wget.zip: c7b48ec3ff929d9bd28ddb87e1a76ffb
Kein Make / Install / Port / Brew / Curl Junk. Einfach herunterladen, installieren und ausführen. Funktioniert mit Mac OS X 10.3-10.12 +.
quelle