OS X:相当于Linux的wget

如何从库存OS X系统上的Un * x shell脚本执行HTTP GET? (安装第三方软件不是一种select,因为它必须运行在许多不受我控制的不同系统上)。

例如,如果我在本地启动Mercurial服务器,执行hg serve

... $ hg serve 

然后,从具有wget命令的Linux,我做了一个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 

在我启动“hg serve”命令的terminal上,我确实可以看到一个HTTP GET取得了成功:

 127.0.0.1 - - [30/Dec/2010 22:18:17] "GET / HTTP/1.0" 200 - 

所以在Linux上,从shell脚本执行HTTP GET的一种方法是使用wget (如果安装了该命令的话)。

还有什么其他方法可以做wget的等价物? 我正在寻找,特别是可以在OS X安装中使用的东西。

我将不得不说curl http://127.0.0.1:8000 -o outfile

brew install wget

Homebrew是OSX的包pipe理器,类似于yum,apt-get,choco,emerge等等。请注意,您还需要安装Xcode和命令行工具。 实际上,任何在OSX中使用命令行的人都会想要安装这些东西。

如果你不能或不想使用自制软件,你也可以:

手动安装wget:

 curl -# "http://ftp.gnu.org/gnu/wget/wget-1.17.tar.xz" -o "wget.tar.xz" tar xf wget.tar.xz cd wget-1.17 ./configure --with-ssl=openssl -with-libssl-prefix=/usr/local/ssl && make -j8 && make install 

或者,使用bash别名:

 function _wget() { curl "${1}" -o $(basename "${1}") ; }; alias wget='_wget' 

curl有一个几乎相当于默认wget的模式。

 curl -O <url> 

这工作就像

 wget <url> 

而且,如果你喜欢,你可以把它添加到你的.bashrc中:

 alias wget='curl -O' 

它不是100%兼容,但它适用于最常见的wget使用(IMO)

1)在你的MACtypes

 nano /usr/bin/wget 

2)粘贴以下内容

 #!/bin/bash curl -L $1 -o $2 

3)closures然后使其可执行

 chmod 777 /usr/bin/wget 

而已。

使用curl ;

 curl http://127.0.0.1:8000 -o index.html 

这里是Linux的wget的Mac OS X等价物。

对于Linux,例如AWS上的Ubuntu,使用:

 wget http://example.com/textfile.txt 

在Mac上,即为了本地开发,使用这个:

 curl http://example.com/textfile.txt -o textfile.txt 

在Mac上需要-o参数才能输出到文件而不是在屏幕上。 指定一个不同的目标名称来重命名下载的文件。

使用大写 -O来重命名wget。 小写-o将指定传输日志的输出文件。

您可以在Mac机上构buildwget或使用MacPorts直接安装它。

 sudo port install wget 

这会像一个魅力,也可以尽快更新到最新版本。 尽pipe配方和端口数量less得多,但端口比酿造要稳定得多。

您可以从https://www.macports.org/install.php安装MacPorts,您可以下载.pkg文件并进行安装。

你可以用curl代替。 它默认安装在/usr/bin