Como faço para obter um HTTP GET a partir de um script de shell Un * x em um sistema OS X padrão? (a instalação de software de terceiros não é uma opção, pois isso deve ser executado em muitos sistemas diferentes sobre os quais eu não tenho controle).
Por exemplo, se eu iniciar o servidor Mercurial localmente, fazendo um hg serve :
... $ hg serve
E então, de um Linux que possui o comando wget, eu faço um 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
E no terminal em que lancei o comando "hg serve" , posso realmente ver que um HTTP GET chegou:
127.0.0.1 - - [30/Dec/2010 22:18:17] "GET / HTTP/1.0" 200 -
Portanto, no Linux, uma maneira de executar um HTTP GET a partir de um script shell é usar o wget (se esse comando estiver instalado, é claro).
Que outras maneiras existem para fazer o equivalente a um wget ? Estou procurando, em particular, algo que funcione nas instalações de estoque do OS X.
Respostas:
Eu vou ter que dizer
curl http://127.0.0.1:8000 -o outfile
fonte
-O
ou--remote-name
sinalizar para renomear automaticamente o arquivo baixado. por exemplocurl -O http://somehost.org/file.zip
brew install wget
O Homebrew é um gerenciador de pacotes para o OSX análogo ao yum, apt-get, choco, emerge, etc. Esteja ciente de que você também precisará instalar o Xcode e as Ferramentas de Linha de Comando. Praticamente qualquer pessoa que use a linha de comando no OSX desejará instalar essas coisas de qualquer maneira.
Se você não pode ou não deseja usar o homebrew, também pode:
Instale o wget manualmente:
Ou use um alias do bash:
fonte
wget
resposta visível para iniciantes aqui, já que a única outra foi excluída por seu proprietário ecurl
é uma alternativa e não um equivalente literal.A ondulação tem um modo quase equivalente ao wget padrão.
Isso funciona como
E, se quiser, você pode adicionar isso ao seu .bashrc:
Não é 100% compatível, mas funciona para o uso mais comum do wget (IMO)
fonte
for i in `seq 1 <n>` do curl -O <url>;done;
onde <n> é o número de vezes que você deseja iterar e <url> é o URL a ser puxado.-L
bandeira para seguir os redirecionamentos de local. Você pode usarcurl -OL <url>
para fazer isso.-O
também se aplica apenas ao próximo argumento; portanto, para baixar vários URLs, é necessário usar algo comocurl -O "$url1" -O "$url2"
ouprintf %s\\n "$url1" "$url2"|xargs -n1 curl -O
.1) no seu tipo mac
2) cole o seguinte em
3) feche e torne-o executável
É isso aí.
fonte
vim /usr/bin/wget
;) haha só brincando. obrigado pela resposta - isso nunca me ocorreu e, por algum motivo, não me apetece instalar o brew / fink / o que quer que seja, então parabéns pela resposta fácil e portátil.-L
é importante para lidar com301
respostas http . O wget lida com eles por padrão.Use
curl
;fonte
Aqui está o equivalente do Mac OS X ao wget do Linux.
Para Linux, por exemplo, Ubuntu em uma instância da AWS, use:
Em um Mac, ou seja, para desenvolvimento local, use o seguinte:
O parâmetro -o é necessário em um Mac para gerar um arquivo em vez de na tela. Especifique um nome de destino diferente para renomear o arquivo baixado.
Use capital -O para renomear com wget. Minúsculas -o especificará o arquivo de saída para o log de transferência.
fonte
Você pode criar o wget na máquina mac ou usar o MacPorts para instalá-lo diretamente.
Isso funcionaria como um encanto, também você pode atualizar para a versão mais recente assim que estiver disponível. O porto é muito mais estável que o brew, embora tenha muito menos número de fórmulas e portos.
Você pode instalar o MacPorts a partir do
https://www.macports.org/install.php
download.pkg
e instalá-lo.fonte
Em vez de usar o equivalente, você pode tentar "brew install wget" e usar o wget.
Você precisa ter o brew instalado no seu mac.
fonte
Você poderia usar em seu
curl
lugar. Ele é instalado por padrão no/usr/bin
.fonte
wget Binário pré-compilado para Mac
Para aqueles que procuram uma instalação rápida do wget no Mac, confira o binário pré-compilado de Quentin Stafford-Fraser aqui, que existe há mais de uma década:
https://statusq.org/archives/2008/07/30/1954/
MD5 para 2008 wget.zip: 24a35d499704eecedd09e0dd52175582
MD5 para 2005 wget.zip: c7b48ec3ff929d9bd28ddb87e1a76ffb
Não criar / instalar / port / brew / curl junk. Basta baixar, instalar e executar. Funciona com o Mac OS X 10.3-10.12 +.
fonte