小编jon*_*ahl的帖子

如何从 LFTP 捕获输出?(输出未写入 STDOUT 或 STDERR?)

我想从 lftp 访问进度信息。目前,我正在使用 curl ,如下所示:

curl http://example.com/file -o file -L 2> download.log
Run Code Online (Sandbox Code Playgroud)

这会将 curl 的进度信息写入 download.log 文件,我可以通过拖尾获取实时进度。

但是同样的方法不适用于 lftp,无论是 stdout 还是 stderr。我最终得到一个空的 download.log 文件,直到传输完成。

lftp -e 'get http://example.com/file;quit' 2> download.log
lftp -e 'get http://example.com/file;quit' 1> download.log
Run Code Online (Sandbox Code Playgroud)

当我不重定向输出时,我会在屏幕上看到进度。当我重定向输出时,我不再在屏幕上看到进度,但在 download.log 中没有显示任何内容。文件传输完成后,我看到了最终结果,就像这样 - 但之前什么都没有:

97618627 bytes transferred in 104 seconds (913.1K/s)
Run Code Online (Sandbox Code Playgroud)

lftp 是否对其输出做了一些不寻常的事情 - 打印到屏幕而不打印到 stdout/stderr?除了重定向 stdout/stderr 之外,还有其他捕获屏幕输出的方法吗?

ftp stderr curl stdout

14
推荐指数
1
解决办法
3万
查看次数

标签 统计

curl ×1

ftp ×1

stderr ×1

stdout ×1