Syn*_*r0r 473 unix macos shell http-get
如何从库存OS X系统上的Un*x shell脚本执行HTTP GET?(安装第三方软件不是一种选择,因为这必须在我无法控制的许多不同系统上运行).
例如,如果我在本地启动Mercurial服务器执行hg服务:
... $ hg serve
Run Code Online (Sandbox Code Playgroud)
然后,从具有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
Run Code Online (Sandbox Code Playgroud)
在我发起"hg serve"命令的终端上,我确实可以看到HTTP GET成功了:
127.0.0.1 - - [30/Dec/2010 22:18:17] "GET / HTTP/1.0" 200 -
Run Code Online (Sandbox Code Playgroud)
所以在Linux上,从shell脚本执行HTTP GET的一种方法是使用wget(如果当然安装了该命令).
有什么其他方法可以做相当于一个wget?特别是我正在寻找可以在OS X安装上运行的东西.
Sie*_*geX 670
我不得不说 curl http://127.0.0.1:8000 -o outfile
Eri*_*ord 449
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
Run Code Online (Sandbox Code Playgroud)
或者,使用bash别名:
function _wget() { curl "${1}" -o $(basename "${1}") ; };
alias wget='_wget'
Run Code Online (Sandbox Code Playgroud)
小智 83
Curl的模式几乎等于默认的wget.
curl -O <url>
Run Code Online (Sandbox Code Playgroud)
这就像
wget <url>
Run Code Online (Sandbox Code Playgroud)
而且,如果您愿意,可以将其添加到.bashrc中:
alias wget='curl -O'
Run Code Online (Sandbox Code Playgroud)
它不是100%兼容,但它适用于最常见的wget用法(IMO)
小智 41
1)在你的mac类型上
nano /usr/bin/wget
Run Code Online (Sandbox Code Playgroud)
2)粘贴以下内容
#!/bin/bash
curl -L $1 -o $2
Run Code Online (Sandbox Code Playgroud)
3)关闭然后使其可执行
chmod 777 /usr/bin/wget
Run Code Online (Sandbox Code Playgroud)
而已.
ism*_*ail 16
使用curl;
curl http://127.0.0.1:8000 -o index.html
Run Code Online (Sandbox Code Playgroud)
Oli*_*eld 10
这是Mac OS X相当于Linux的wget.
对于Linux,例如AWS实例上的Ubuntu,请使用:
wget http://example.com/textfile.txt
Run Code Online (Sandbox Code Playgroud)
在Mac上,即本地开发,请使用:
curl http://example.com/textfile.txt -o textfile.txt
Run Code Online (Sandbox Code Playgroud)
Mac上需要-o参数才能输出到文件而不是屏幕上.指定其他目标名称以重命名下载的文件.
使用大写 -O用wget重命名.小写-o将指定传输日志的输出文件.
小智 6
您可以尝试"brew install wget"并使用wget,而不是使用等效的.
您需要在Mac中安装brew.
您可以在mac机器上构建wget,也可以使用MacPorts直接安装它.
sudo port install wget
Run Code Online (Sandbox Code Playgroud)
这可以像魅力一样,你也可以尽快更新到最新版本.港口比啤酒更稳定,但配方和港口的数量要少得多.
您可以从中安装MacPorts,https://www.macports.org/install.php然后下载该.pkg文件并进行安装.
| 归档时间: |
|
| 查看次数: |
512005 次 |
| 最近记录: |