Hoe kan ik een HTTP GET uitvoeren vanuit een Un*x-shellscript op een standaard OS X-systeem? (software van derden installeren is geen optie, want dit moet op veel verschillende systemen draaien waar ik geen controle over heb).
Als ik bijvoorbeeld de Mercurial-server lokaal start met een hg-server:
... $ hg serve
En dan, vanaf een Linux die het wgetcommando heeft, doe ik een 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
En op de terminal waarin ik de opdracht “hg serve”lanceerde, kan ik inderdaad zien dat een HTTP GET zijn weg heeft gevonden:
127.0.0.1 - - [30/Dec/2010 22:18:17] "GET / HTTP/1.0" 200 -
Dus op Linux is een manier om een HTTP GET uit een shellscript te doen het gebruik van wget(als dat commando natuurlijk is geïnstalleerd).
Welke andere manieren zijn er om het equivalent van een wgette doen? Ik ben in het bijzonder op zoek naar iets dat zou werken op standaard OS X-installaties.
Antwoord 1, autoriteit 100%
Ik moet zeggen curl http://127.0.0.1:8000 -o outfile
Antwoord 2, autoriteit 64%
brew install wget
Homebrewis een pakketbeheerder voor OSX analoog aan yum, apt-get, choco, emerge, etc. Let op dat u ook Xcode en de Command Line Tools moet installeren. Vrijwel iedereen die de opdrachtregel in OSX gebruikt, wil deze dingen toch installeren.
Als je homebrew niet kunt of wilt gebruiken, kun je ook:
Wget handmatig installeren:
curl -# "http://ftp.gnu.org/gnu/wget/wget-1.17.1.tar.xz" -o "wget.tar.xz"
tar xf wget.tar.xz
cd wget-1.17.1
./configure --with-ssl=openssl -with-libssl-prefix=/usr/local/ssl && make -j8 && make install
Of gebruik een bash-alias:
function _wget() { curl "${1}" -o $(basename "${1}") ; };
alias wget='_wget'
Antwoord 3, autoriteit 12%
Curl heeft een modus die bijna gelijk is aan de standaard wget.
curl -O <url>
Dit werkt net als
wget <url>
En als je wilt, kun je dit toevoegen aan je .bashrc:
alias wget='curl -O'
Het is niet 100% compatibel, maar het werkt voor het meest voorkomende wget-gebruik (IMO)
Antwoord 4, autoriteit 5%
1) op je mac-type
nano /usr/bin/wget
2) plak het volgende in
#!/bin/bash
curl -L $1 -o $2
3) sluit en maak het uitvoerbaar
chmod 777 /usr/bin/wget
Dat is het.
Antwoord 5, autoriteit 2%
Gebruik curl
;
curl http://127.0.0.1:8000 -o index.html
Antwoord 6, autoriteit 2%
Hier is het Mac OS X-equivalent van Linux’s wget.
Voor Linux, bijvoorbeeld Ubuntu op een AWS-instantie, gebruik:
wget http://example.com/textfile.txt
Op een Mac, d.w.z. voor lokale ontwikkeling, gebruik dit:
curl http://example.com/textfile.txt -o textfile.txt
De parameter -o is vereist op een Mac voor uitvoer naar een bestand in plaats van op het scherm. Geef een andere doelnaam op voor het hernoemen van het gedownloade bestand.
Gebruik hoofdletter-O voor het hernoemen met wget. Kleine letters -o specificeert het uitvoerbestand voor het overdrachtslogboek.
Antwoord 7
Je kunt wget op de mac-machine bouwen of MacPorts gebruiken om het direct te installeren.
sudo port install wget
Dit zou werken als een tierelier, en je kunt ook updaten naar de nieuwste versie zodra deze beschikbaar is. Port is veel stabieler dan brouwsel, hoewel het veel minder formules en poorten heeft.
U kunt MacPorts installeren vanaf https://www.macports.org/install.php
u kunt het .pkg
-bestand downloaden en installeren.
Antwoord 8
In plaats van het equivalent te gebruiken, kunt u “brew install wget” proberen en wget gebruiken.
Je moet brew op je mac hebben geïnstalleerd.
Antwoord 9
Je zou in plaats daarvan curl
kunnen gebruiken. Het wordt standaard geïnstalleerd in /usr/bin
.
Antwoord 10
wget vooraf gecompileerd Mac binair
Voor wie op zoek is naar een snelle wget-installatie op Mac, bekijk hier het voorgecompileerde binaire bestand van Quentin Stafford-Fraser, dat al meer dan tien jaar bestaat:
https://statusq.org/archives/2008/07/30/ 1954/
MD5 voor wget.zip 2008: 24a35d499704eecedd09e0dd52175582
MD5 voor 2005 wget.zip: c7b48ec3ff929d9bd28ddb87e1a76ffb
Geen make/install/port/brew/curl rommel. Gewoon downloaden, installeren en uitvoeren. Werkt met Mac OS X 10.3-10.12+.