Альтернатива "openvt", но для псевдотерминала (pts). Существуют?

Начиная с файла типа:

$ cat >file
not
like
this...

sed будет работать:

$ sed 's/$/\n/' file
not

like

this...

Так и будет:

$ awk 1 ORS='\n\n' file
not

like

this...

1является загадочным сокращением awk для печати -строки -, а ORS='\n\n'указывает awk разделять выходные строки не одним, а двумя символами новой строки.

Еще

Более короткая команда sed, предложенная steeldriver ,:

sed '$!G' file

Команда Gдобавляет новую строку и пробел в конец пространства шаблона . Поскольку по умолчанию пространство для удержания пусто, это приводит к простому добавлению дополнительной новой строки в конце каждой строки.Префикс $!говорит sed сделать это для всех строк , кроме последней.

0
11.01.2020, 18:51
1 ответ

птирун и птибандаж

Существует множество доступных инструментов, которые делают то же самое, что openvtделает :открывает новый псевдо-терминал -и запускает назначенную команду со стандартным вводом-выводом, подключенным к этому псевдо-терминалу -..

  • Оригинал Дэниела Дж. Бернштейна ptyrunиptybandage
  • Мои сборки ptyrunи ptybandageна утилитах набора инструментов nosh
  • Модуль расширения zptyв оболочке Z
% tty ; ptybandage tty
/dev/pts/5
/dev/pts/6
%

Конечно, разница заключается в том, что в случае псевдотерминалов -необходимо, чтобы какой-то процесс был присоединен к главной стороне псевдотерминала -, чтобы фактически сделать что-то с ввод/вывод. В случае инструментов Бернштейна это программа ptyio. ptyrunи ptybandageна самом деле являются сценариями, которые переходят в программы ptyget, ptyioи ptyspawn. Аналогичная ситуация с моими инструментами, где программа pty-runявляется внутренней рабочей лошадкой ввода-вывода в сочетании с pty-get-ttyи open-controlling-tty.

Это означает, что если кто-то хочет более мелкой -детализированной операции, просто открывая главную сторону псевдо--терминала, а затем последовательно загружая что-то , чтобы сделать все остальное, можно вызвать pty-get-ttyили ptygetнапрямую.

терминальные мультиплексоры

В случае терминальных мультиплексоров tmuxи screen, конечно, существуют механизмы (, которые являются частью этих программ )для запуска нового (внутреннего )терминала и запуска прикрепленная к нему команда. Подробнее см. документацию по этим программам.

существующие псевдо-терминалы -

Какие инструменты (ptyrun, ptybandageи др. )делать не делать это запускать команды, присоединяя их к существующим псевдо-терминалам -. Они всегда создают свежие.

Существует небольшая потребность в выполнении команд, подключенных к существующим псевдо-терминалам -. Но это может быть сделано. Например, это можно сделать с помощью моего набора инструментов.Просто установите переменную окружения TTYна имя файла устройства подчиненной стороны существующего псевдо-терминала -и вызовите команду с помощью инструмента open-controlling-tty.

TTY=/dev/pts/5 open-controlling-tty $SHELL

Это, конечно, создает конкуренцию за терминал среди различных несвязанных параллельных процессов, и заставляет с болью осознать, как много оболочки управления заданиями делают для одного. & #9786;

Также обратите внимание, что некоторые SSH-серверы и эмуляторы терминалов закроют главную сторону, если их ведомая -дочерняя сторона завершится.

чем все это не является

Наконец, обратите внимание, что это не механизмы заполнения ввода -, для управления существующей интерактивной оболочкой на существующем псевдо-терминале -, посылая команды на его вход. Все они присоединяют новых процессов к (новым )псевдо-терминалам -.

Но ведь openvtэто тоже не то.

Дополнительная литература

  • https://unix.stackexchange.com/a/249801/5132
  • Даниэль Дж. Бернштейн (1996 ).ptyrun. djbwares .
  • Даниэль Дж. Бернштейн (1996 ).ptybandage. djbwares .
  • Даниэль Дж. Бернштейн (1996 ).ptyio. djbwares .
  • Даниэль Дж. Бернштейн (1996 ).ptyget. djbwares .
  • Джонатан де Бойн Поллард (2014 ).ptyrun. Направляющая ноша . Программное обеспечение.
  • Джонатан де Бойн Поллард (2014 ).ptybandage. Направляющая ноша . Программное обеспечение.
  • Джонатан де Бойн Поллард (2014 ).pty-run. Направляющая ноша . Программное обеспечение.
  • Джонатан де Бойн Поллард (2014 ).pty-get-tty. Направляющая ноша . Программное обеспечение.
  • Джонатан де Бойн Поллард (2014 ).open-controlling-tty. Направляющая ноша . Программное обеспечение.
  • https://unix.stackexchange.com/a/470853/5132
1
28.01.2020, 02:56

Теги

Похожие вопросы