我正在尝试使用net :: ssh中继wget
的stdout。即使我有这样的设置:
ssh.exec! cmd do |ch, stream, data|
print data
end
我得到这样的输出:
0K .......... .......... .......... .......... .......... 1% 18.8M 0s
50K .......... .......... .......... .......... .......... 3% 23.7M 0s
100K .......... .......... .......... .......... .......... 4% 22.7M 0s
150K .......... .......... .......... .......... .......... 6% 23.8M 0s
当我希望用温度计进度条在同一行上打印所有内容时。我做错了什么?
修改
这实际上可能与远程进程(在本例中为wget
)有关,而不是我的设置。在本地运行时,我得到如下输出:
100%[============================>] 3,208,462 7.65M/s in 0.4s
这与我通过ssh得到的完全不同。
答案 0 :(得分:0)
在这种情况下,看起来wget
是罪魁祸首而不是我怀疑的回车。
有两种进度输出模式bar
和dot
。如果输出是tty
(这是我本地的),则栏是默认值,但{t}是非tty会话中的默认值(这是我通过ssh获得的)。 dot
进度条没有回车符。这就解释了为什么我没有看到它们。
将dot
选项添加到--progress=bar:force
调用按预期工作,回车和所有。
我会把这个保留在这里并稍微重命名一下,以防每个人都遇到这个问题。