ssh remotehost "remote_command" | more
Это выполняет remote_command
на remotehost
, и разбивает на страницы вывод remote_command
. Если пользователь не желает пролистывать все страницы, он может нажать q
на --MORE--
Подсказка. К сожалению, это не останавливает процесс ssh (и удаленную команду). Пользователь должен нажать ^C
для фактического завершения процессов. Когда пользователь нажимает q
more завершается, и ssh получает SIGPIPE, но продолжается как remote_command
не завершил выполнение. Есть ли способ прекратить ssh и удаленное выполнение, когда пользователь выходит из пейджера? Я не хочу, чтобы пользователь нажимал ^ C, поскольку от него не требовалось бы этого делать, если бы локальный файл был загружен (на самом деле он не знал бы, что эта команда выполняется через туннель ssh удаленно).
Почему бы просто не изменить команду, чтобы вызвать больше на удаленном сервере? Также вам придется принудительно установить pty, как упоминалось в wfaulk. Предполагая, что это другая система unix, это должно быть нормально. т.е.
ssh -t имя @ system "команда | еще"
Fyi. меньше - больше :)
Я не тестировал это, но попробуйте получить pty с удаленной машины, передав '-t
'флаг ssh
.