我想用Wget下载一个文件,但按照通常的 UNIX 哲学,如果下载成功,我不希望它输出任何内容。但是,如果下载失败,我想要一条错误消息。
该-q
选项禁止所有输出,包括错误消息。如果我-nv
改为包含选项,Wget 仍会打印(在 stderr 上):
2012-05-03 16:17:05 URL:http://example.net/ [2966] -> "index.html" [1]
Run Code Online (Sandbox Code Playgroud)
我怎样才能删除该输出,但仍然收到错误消息?
试试吧curl
:
curl -fsS $url -o $file
Run Code Online (Sandbox Code Playgroud)
长版:
curl --fail --silent --show-error $url --output $file
Run Code Online (Sandbox Code Playgroud)
GNOME 用户可以尝试 Gvfs:
gvfs-cp $url $file
Run Code Online (Sandbox Code Playgroud)
如果你不能得到更好的答案,那么蹩脚的黑客:
wget {url} 2>/tmp/err.log || cat /tmp/err.log; rm /tmp/err.log
Run Code Online (Sandbox Code Playgroud)
(2> /tmp/err.log 将 stderr 重定向到 tmp 文件;如果 wget 返回 0 [成功],则 || 短路,否则它将打印出错误日志值)
归档时间: |
|
查看次数: |
7170 次 |
最近记录: |