582

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

例如,如果我在本地启动 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”命令的终端上,我确实可以看到 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 安装的东西。

4

10 回答 10

829

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

于 2010-12-31T20:21:26.373 回答
547

brew install wget

Homebrew是 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'
于 2013-06-13T18:18:10.663 回答
96

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

curl -O <url>

这就像

wget <url>

而且,如果您愿意,可以将其添加到您的 .bashrc 中:

alias wget='curl -O'

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

于 2014-01-10T08:16:35.293 回答
45

1) 在你的 mac 类型上

nano /usr/bin/wget

2)粘贴以下内容

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

3)关闭然后使其可执行

chmod 777 /usr/bin/wget

就是这样。

于 2013-11-04T12:16:39.753 回答
19

使用curl

curl http://127.0.0.1:8000 -o index.html
于 2010-12-31T20:22:18.963 回答
15

这是 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 将指定传输日志的输出文件。

于 2013-06-27T07:57:28.593 回答
5

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

sudo port install wget 

这就像一个魅力,你也可以在它可用时立即更新到最新版本。Port 比 brew 稳定得多,尽管公式和端口的数量要少得多。

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

于 2016-04-07T02:05:27.900 回答
4

你可以curl改用。它默认安装到/usr/bin.

于 2010-12-31T20:22:18.917 回答
4

您可以尝试“brew install wget”并使用 wget,而不是使用等价物。

您需要在您的 Mac 中安装 brew。

于 2018-05-17T21:06:07.603 回答
2

wget 预编译的 Mac 二进制文件

对于那些希望在 Mac 上快速安装 wget 的人,请在此处查看 Quentin Stafford-Fraser 的预编译二进制文件,它已经存在了十多年:

https://statusq.org/archives/2008/07/30/1954/

2008 wget.zip 的
MD5:24a35d499704eecedd09e0dd52175582 2005 wget.zip 的 MD5:c7b48ec3ff929d9bd28ddb87e1a76ffb

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

于 2018-07-10T23:58:10.373 回答