Comment puis-je effectuer un HTTP GET à partir d'un script Un * x Shell sur un système OS X standard? (installer un logiciel tiers n'est pas une option, car cela doit fonctionner sur beaucoup de systèmes différents sur lesquels je n'ai pas le contrôle).
Par exemple, si je démarre le serveur Mercurial localement en faisant un hg serve:
... $ hg serve
Et puis, à partir d’un Linux qui a la commande wget, je fais un 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
Et sur le terminal dans lequel j'ai lancé la commande "hg serve", je peux en effet voir qu'un HTTP GET a fait son chemin:
127.0.0.1 - - [30/Dec/2010 22:18:17] "GET / HTTP/1.0" 200 -
Donc, sur Linux, une façon de faire un HTTP GET à partir d’un script Shell est d’utiliser wget (si cette commande est installée bien sûr).
Quels sont les autres moyens de faire l'équivalent d'un wget? Je recherche en particulier quelque chose qui fonctionnerait avec les installations stockées d’OS X.
Je vais devoir dire curl http://127.0.0.1:8000 -o outfile
brew install wget
Homebrew est un gestionnaire de paquets pour OSX analogue à yum, apt-get, choco, emerge, etc. Sachez que vous devrez également installer Xcode et les outils de ligne de commande. Pratiquement tous ceux qui utilisent la ligne de commande dans OSX voudront quand même installer ces choses.
Si vous ne pouvez ou ne voulez pas utiliser l'homebrew, vous pouvez également:
Installez wget manuellement:
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
Ou utilisez un alias bash:
function _wget() { curl "${1}" -o $(basename "${1}") ; };
alias wget='_wget'
Curl a un mode presque équivalent au wget par défaut.
curl -O <url>
Cela fonctionne comme
wget <url>
Et, si vous le souhaitez, vous pouvez ajouter ceci à votre .bashrc:
alias wget='curl -O'
Ce n'est pas 100% compatible, mais cela fonctionne pour l'utilisation la plus courante de wget (IMO)
1) sur votre type de mac
nano /usr/bin/wget
2) coller ce qui suit dans
#!/bin/bash
curl -L $1 -o $2
3) fermer puis le rendre exécutable
chmod 777 /usr/bin/wget
C'est ça.
Utilisez curl
;
curl http://127.0.0.1:8000 -o index.html
Voici l'équivalent Mac OS X du wget de Linux.
Pour Linux, par exemple Ubuntu sur une instance AWS, utilisez:
wget http://example.com/textfile.txt
Sur un Mac, c’est-à-dire pour le développement local, utilisez ceci:
curl http://example.com/textfile.txt -o textfile.txt
Le paramètre -o est requis sur un Mac pour pouvoir être exporté dans un fichier plutôt qu'à l'écran. Spécifiez un autre nom de cible pour renommer le fichier téléchargé.
Utilisez majuscule -O pour renommer avec wget. Les minuscules -o spécifieront le fichier de sortie pour le journal de transfert.
Au lieu d'aller avec équivalent, vous pouvez essayer "brew install wget" et utiliser wget.
Vous devez avoir installé la bière dans votre mac.
Vous pouvez créer wget sur la machine Mac ou utiliser MacPorts pour l’installer directement.
Sudo port install wget
Cela fonctionnerait comme un charme, vous pouvez également mettre à jour à la dernière version dès que celle-ci est disponible. Le porto est beaucoup plus stable que la bière, bien qu'il ait beaucoup moins de formule et de ports.
Vous pouvez installer MacPorts à partir de https://www.macports.org/install.php
, vous pouvez télécharger le fichier .pkg
et l’installer.
Vous pouvez utiliser curl
à la place. Il est installé par défaut dans /usr/bin
.
Pour ceux qui recherchent une installation rapide de wget sur Mac, découvrez le binaire précompilé de Quentin Stafford-Fraser ici, qui existe depuis plus de 10 ans:
https://statusq.org/archives/2008/07/30/1954/
MD5 pour 2008 wget.Zip: 24a35d499704eecedd09e0dd52175582
MD5 pour 2005 wget.Zip: c7b48ec3ff929d9bd28ddb87e1a76ffb
Pas de make/install/port/brew/curl junk. Il suffit de télécharger, installer et exécuter. Fonctionne avec Mac OS X 10.3-10.12 +.