tail -f И разрешить ввод текста

Я хочу создать скрипт, который позволяет некоторую интерактивность

  • tail -f logfile от myService
  • позволяет вводить текст и отправлять его в myService

Что я пока не могу решить, так это две функции, работающие параллельно в одном терминале. Я также хотел бы достичь чего-то в TTY, я даже не знаю слово для:

,-------------------------.
| output here output here |
| output here output here |
|-------------------------|
( fixed input line here   )
 -------------------------

Возможно ли это сделать с помощью серверного bash-скрипта, выполняемого через ssh? Как?

3 ответа

Решение

Это не будет возможно с bash один, но используя dialog с --tailbox функция может быть то, что вы ищете.

Было бы достаточно использовать screen или же tmux в режиме разделения?

последовательность команд для экрана (раскладки клавиатуры по умолчанию):

screen -
tail -f <logfile>
ctrl-a shift-s
ctrl-a <tab>
ctrl-a c
<send commands via shell>

последовательность команд для tmux (раскладки по умолчанию):

tmux
tail -f <logfile>
ctrl-b "
<send commands via shell>

tail -f никогда не завершается, так что это невозможно - ни один инструмент не может знать, когда добавить фиксированную строку вывода.

Но вы можете сделать это прямо tail, если вы подождете, пока не будет записан лог-файл. Я предполагаю, что вы хотите отправить комбинацию в стандартный ввод какой-либо другой команды, предположительно той, которая интегрируется с вашим провайдером.

( tail /var/log/logfile ; echo "Fixed output line here" ) | /usr/bin/nextcommand
Другие вопросы по тегам