Ruby Net::SSH`wget`进度条
我正在尝试使用net::ssh中继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 .......
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
调用中会按预期工作,回车和全部回车
我将把这个保留在这里,并将这个问题重新命名一点,以防每个人都无意中发现这个问题