Comment puis-je faire un HTTP GET à partir d'un script shell Un * x sur un système OS X stock? (l'installation de logiciels tiers n'est pas une option, car cela doit fonctionner sur de nombreux systèmes différents sur lesquels je n'ai pas de contrôle).
Par exemple, si je démarre le serveur Mercurial localement en faisant un service hg :
... $ hg serve
Et puis, depuis 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 bien sûr installée).
Quelles sont les autres façons de faire l'équivalent d'un wget ? Je recherche en particulier quelque chose qui fonctionnerait sur les installations OS X en stock.
Réponses:
Je vais devoir dire
curl http://127.0.0.1:8000 -o outfile
la source
-O
ou--remote-name
marquer pour renommer automatiquement le fichier téléchargé. par exemplecurl -O http://somehost.org/file.zip
brew install wget
Homebrew est un gestionnaire de paquets pour OSX analogue à yum, apt-get, choco, emerge, etc. Soyez conscient que vous devrez également installer Xcode et les outils de ligne de commande. Quasiment tous ceux qui utilisent la ligne de commande dans OSX voudront quand même installer ces choses.
Si vous ne pouvez pas ou ne voulez pas utiliser l'homebrew, vous pouvez également:
Installez wget manuellement:
Ou utilisez un alias bash:
la source
wget
réponse visible pour les débutants ici car la seule autre a été supprimée par son propriétaire, etcurl
est une alternative plutôt qu'un équivalent littéral.Curl a un mode qui est presque équivalent au wget par défaut.
Cela fonctionne comme
Et, si vous le souhaitez, vous pouvez l'ajouter à votre .bashrc:
Ce n'est pas 100% compatible, mais il fonctionne pour l'utilisation la plus courante de wget (IMO)
la source
for i in `seq 1 <n>` do curl -O <url>;done;
où <n> est le nombre de fois que vous souhaitez itérer et <url> est l'url à extraire.-L
drapeau pour suivre les redirections d'emplacement. Vous pouvez utilisercurl -OL <url>
pour cela.-O
s'applique également uniquement à l'argument suivant, donc pour télécharger plusieurs URL, vous devez utiliser quelque chose commecurl -O "$url1" -O "$url2"
ouprintf %s\\n "$url1" "$url2"|xargs -n1 curl -O
.1) sur votre type de mac
2) collez ce qui suit dans
3) fermez puis rendez-le exécutable
C'est ça.
la source
vim /usr/bin/wget
bien;) haha je plaisante. merci pour la réponse - cela ne m'est jamais vraiment venu à l'esprit et pour une raison quelconque, je n'ai pas envie d'installer brew / fink / quoi que ce soit, donc bravo pour la réponse portable facile.-L
est important pour gérer les301
réponses http . wget les gère par défaut.Utilisation
curl
;la source
Voici l'équivalent Mac OS X du wget de Linux.
Pour Linux, par exemple Ubuntu sur une instance AWS, utilisez:
Sur un Mac, c'est-à-dire pour le développement local, utilisez ceci:
Le paramètre -o est requis sur un Mac pour la sortie dans un fichier plutôt qu'à l'écran. Spécifiez un nom cible différent pour renommer le fichier téléchargé.
Utilisez -O majuscule pour renommer avec wget. -O en minuscule spécifie le fichier de sortie pour le journal de transfert.
la source
Vous pouvez soit construire wget sur la machine mac, soit utiliser MacPorts pour l'installer directement.
Cela fonctionnerait comme un charme, vous pouvez également mettre à jour vers la dernière version dès qu'elle est disponible. Le port est beaucoup plus stable que l'infusion, bien qu'il ait beaucoup moins de formules et de ports.
Vous pouvez installer MacPorts à partir de laquelle
https://www.macports.org/install.php
vous pouvez télécharger le.pkg
fichier et l'installer.la source
Au lieu d'aller avec l'équivalent, vous pouvez essayer "brew install wget" et utiliser wget.
Vous devez avoir installé brew dans votre mac.
la source
Vous pouvez utiliser à la
curl
place. Il est installé par défaut dans/usr/bin
.la source
binaire Mac précompilé wget
Pour ceux qui recherchent une installation rapide de wget sur Mac, consultez le binaire précompilé de Quentin Stafford-Fraser ici, qui existe depuis plus d'une décennie:
https://statusq.org/archives/2008/07/30/1954/
MD5 pour 2008 wget.zip: 24a35d499704eecedd09e0dd52175582
MD5 pour 2005 wget.zip: c7b48ec3ff929d9bd28ddb87e1a76ffb
Pas de indésirable make / install / port / brew / curl. Téléchargez, installez et exécutez simplement. Fonctionne avec Mac OS X 10.3-10.12 +.
la source