¿Cómo puedo hacer un HTTP GET desde un script de shell Un * x en un sistema OS X estándar? (instalar software de terceros no es una opción, ya que esto tiene que ejecutarse en muchos sistemas diferentes sobre los que no tengo control).
Por ejemplo, si inicio el servidor Mercurial localmente haciendo un hg serve :
... $ hg serve
Y luego, desde un Linux que tiene el comando wget , hago 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
Y en el terminal en el que lancé el comando "hg serve" , puedo ver que un HTTP GET se abrió paso:
127.0.0.1 - - [30/Dec/2010 22:18:17] "GET / HTTP/1.0" 200 -
Entonces, en Linux, una forma de hacer un HTTP GET desde un script de shell es usar wget (si ese comando está instalado, por supuesto).
¿Qué otras formas hay para hacer el equivalente de un wget ? Estoy buscando, en particular, algo que funcione en las instalaciones estándar de OS X.
Respuestas:
Voy a tener que decir
curl http://127.0.0.1:8000 -o outfile
fuente
-O
o--remote-name
marcar para cambiar automáticamente el nombre del archivo descargado. por ejemplocurl -O http://somehost.org/file.zip
brew install wget
Homebrew es un administrador de paquetes para OSX análogo a yum, apt-get, choco, emerge, etc. Tenga en cuenta que también necesitará instalar Xcode y las herramientas de línea de comandos. Prácticamente cualquier persona que use la línea de comandos en OSX querrá instalar estas cosas de todos modos.
Si no puede o no quiere usar homebrew, también podría:
Instale wget manualmente:
O use un alias bash:
fuente
wget
respuesta visible para los novatos aquí, ya que la única otra fue eliminada por su propietario, ycurl
es una alternativa en lugar de un equivalente literal.Curl tiene un modo que es casi equivalente al wget predeterminado.
Esto funciona igual que
Y, si lo desea, puede agregar esto a su .bashrc:
No es 100% compatible, pero funciona para el uso de wget más común (IMO)
fuente
for i in `seq 1 <n>` do curl -O <url>;done;
donde <n> es la cantidad de veces que desea iterar y <url> es la url para extraer.-L
bandera para seguir los redireccionamientos de ubicación. Puedes usarcurl -OL <url>
para hacer eso.-O
también solo se aplica al siguiente argumento, por lo que para descargar varias URL debe usar algo comocurl -O "$url1" -O "$url2"
oprintf %s\\n "$url1" "$url2"|xargs -n1 curl -O
.1) en tu tipo de mac
2) pegue lo siguiente en
3) cierra y luego hazlo ejecutable
Eso es.
fuente
vim /usr/bin/wget
;) jaja es broma. gracias por la respuesta, esto nunca se me ocurrió y por alguna razón no tengo ganas de instalar brew / fink / lo que sea, así que felicitaciones por la fácil respuesta portátil.-L
es importante para manejar las301
respuestas http . wget los maneja por defecto.Uso
curl
;fuente
Aquí está el equivalente de Mac OS X del wget de Linux.
Para Linux, por ejemplo Ubuntu en una instancia de AWS, use:
En una Mac, es decir, para el desarrollo local, use esto:
El parámetro -o se requiere en una Mac para la salida a un archivo en lugar de en la pantalla. Especifique un nombre de destino diferente para cambiar el nombre del archivo descargado.
Use capital -O para renombrar con wget. Minúscula -o especificará el archivo de salida para el registro de transferencia.
fuente
Puede compilar wget en la máquina Mac o usar MacPorts para instalarlo directamente.
Esto funcionaría de maravilla, también puede actualizar a la última versión tan pronto como esté disponible. El puerto es mucho más estable que la cerveza, aunque tiene una cantidad mucho menor de fórmula y puertos.
Puede instalar MacPorts desde
https://www.macports.org/install.php
donde puede descargar el.pkg
archivo e instalarlo.fuente
En lugar de ir con un equivalente, puedes probar "brew install wget" y usar wget.
Necesitas tener brew instalado en tu mac.
fuente
Podrías usar
curl
en su lugar. Se instala por defecto en/usr/bin
.fuente
wget Mac binario precompilado
Para aquellos que buscan una instalación rápida de wget en Mac, consulte el binario precompilado de Quentin Stafford-Fraser aquí, que ha existido durante más de una década:
https://statusq.org/archives/2008/07/30/1954/
MD5 para 2008 wget.zip: 24a35d499704eecedd09e0dd52175582
MD5 para 2005 wget.zip: c7b48ec3ff929d9bd28ddb87e1a76ffb
Sin hacer / instalar / puerto / brew / curl junk. Simplemente descargue, instale y ejecute. Funciona con Mac OS X 10.3-10.12 +.
fuente