【发布时间】:2011-07-08 20:29:04
【问题描述】:
当您在 Ruby 脚本中使用系统调用时,您可以获得该命令的输出,如下所示:
output = `ls`
puts output
这就是this question 的意义所在。
但是有没有办法显示系统调用的连续输出?例如,如果您运行此安全复制命令,以通过 SSH 从服务器获取文件:
scp user@someserver:remoteFile /some/local/folder/
...它显示下载进度的连续输出。但是这个:
output = `scp user@someserver:remoteFile /some/local/folder/`
puts output
... 不捕获该输出。
如何从我的 Ruby 脚本中显示下载的持续进度?
【问题讨论】:
-
你这里有两个正交问题,因为 scp 默认只输出到终端,你需要 scp -v
-
@tokland - 让它输出调试消息,但不是我单独运行 scp 时看到的传输进度。我认为那些不能去标准输出,我没有看到 scp 将它们发送到那里的选项。
-
显然 scp 将进度信息发送到“交互式终端”?不知道如何捕捉...