Ruby Net::SSH`wget`进度条

Ruby Net::SSH`wget`进度条,ruby,io,terminal,net-ssh,Ruby,Io,Terminal,Net Ssh,我正在尝试使用net::ssh中继wget的标准输出。即使我有这样的设置: ssh.exec! cmd do |ch, stream, data| print data end 0K .......... .......... .......... .......... .......... 1% 18.8M 0s 50K .......... .......... .......... .......... .......... 3% 23.7M 0s 100K .......

我正在尝试使用net::ssh中继
wget
的标准输出。即使我有这样的设置:

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
100%[============================>] 3,208,462   7.65M/s   in 0.4s
我得到的输出如下:

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
100%[============================>] 3,208,462   7.65M/s   in 0.4s
当我希望所有内容都用温度计进度条打印在同一行时。我做错了什么

编辑

这实际上可能与远程进程(在本例中为
wget
)的关系比我的设置更大。在本地运行时,我得到如下输出:

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
100%[============================>] 3,208,462   7.65M/s   in 0.4s

这与我通过ssh获得的信息完全不同。

在本例中,似乎罪魁祸首是
wget
,而不是我怀疑的车厢返回

有两种进度输出模式
bar
dot
。如果输出是
tty
(这是我在本地拥有的),则默认为条形,但是
dot
是非tty会话中的默认值(这是我通过ssh拥有的)。
进度条没有回车符。这就是为什么我没有看到他们

将选项
--progress=bar:force
添加到
wget
调用中会按预期工作,回车和全部回车

我将把这个保留在这里,并将这个问题重新命名一点,以防每个人都无意中发现这个问题