OS X:相当于Linux's wget

我怎么能做一个HTTP GET从一个Un*x shell脚本上一个股票OS x系统?(安装第三方软件不是一个选择,因为这必须运行在很多不同的系统上,我没有控制)。

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

... $ hg serve

然后,从一个Linux,有wget命令,我做一个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服务”命令的终端上,我确实可以看到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安装。

685451 次浏览

下面的本地命令可以工作:

# EYZ0

注意,默认情况下curl不跟在重定向后面。要告诉它这样做,将-L添加到参数列表中。

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

使用# EYZ0;

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

# EYZ0

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

如果你不能或不想使用自制咖啡,你还可以:

手动安装wget:

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

或者,使用bash别名:

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

下面是Mac OS X中Linux的wget的等效版本。

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

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

在Mac上,也就是本地开发,使用这个:

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

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

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

1)你的MAC类型

nano /usr/bin/wget

2)粘贴以下内容

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

3)关闭,然后使其可执行

chmod 777 /usr/bin/wget

就是这样。

Curl有一个几乎等同于默认wget的模式。

curl -O <url>

这就像

wget <url>

并且,如果你愿意,你可以把这个添加到你的.bashrc:

alias wget='curl -O'

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

您可以在mac机器上构建wget,也可以使用MacPorts直接安装它。

sudo port install wget

这将像一个魅力,你也可以更新到最新的版本,只要它可用。Port比brew更稳定,尽管有更少的公式和Port。

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

你可以尝试“brew install wget”,然后使用wget。

你需要在你的mac上安装brew。

预编译的Mac二进制文件

对于那些希望在Mac上快速安装wget的人来说,可以在这里查看Quentin stford - fraser的预编译二进制文件,它已经存在了十多年:

< p > # EYZ0

# EYZ0
# EYZ0 > < /晚餐

没有make/install/port/brew/curl垃圾。下载、安装并运行即可。适用于Mac OS X 10.3-10.12+。