Net::SSH `wget` индикатор выполнения
Я пытаюсь передать стандартный вывод wget
используя net::ssh. Даже при том, что у меня это настроено как это:
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.
1 ответ
В этом случае это выглядит как wget
виновник, а не возврат кареты, который я подозревал.
Есть два режима вывода прогресса bar
а также dot
, Бар по умолчанию, если на выходе tty
(что есть у меня на месте) но dot
по умолчанию в нет-tty сессиях (это то, что у меня есть через ssh). dot
Индикатор выполнения не имеет возврата каретки. Это объясняет, почему я их не вижу.
Добавление опции --progress=bar:force
к wget
звонок работает как положено, возврат каретки и все.
Я оставлю это здесь и переименую вопрос немного на тот случай, если кто-нибудь столкнется с этой проблемой.