Tmux: как указать сеанс в новом окне

Использование команд группирования является правильным для выполнения этой работы, но виновником является ввод, который вы вводите в команды группирования, который недоступен для поиска.

POSIX определяет в разделе INPUT FILE следующее:

Когда стандартная утилита считывает доступный для поиска входной файл и завершает работу без ошибки до того, как достигнет конца файла, Утилита должна гарантировать, что смещение файла в описании открытого файла правильно располагается сразу за последним байтом, обработанным утилитой. Для файлов , которые недоступны для поиска, состояние смещения файла в описании открытого файла для этого файла не указано

perl не является стандартной утилитой, но есть большая шанс, что он соответствует стандартной спецификации. Если вы сделаете свой файл доступным для поиска, он будет работать:

$ seq 13 > /tmp/test
$ {perl -e 'for($i=0;$i<10;$i++){$line = ;print $line}'; cat;} 

Если вы не хотите использовать файл для поиска, вы можете заставить perl использовать нижний уровень, который вызывает функцию read () , write () , lseek () для ввода-вывода:

$ seq 13 | {
  PERLIO=:unix perl -e 'for($i=0;$i<10;$i++){$line = ;print $line}'
  cat
}

4
28.04.2019, 02:59
2 ответа

Хотя это не очень четко задокументировано, оказывается, что окна могут быть указаны как session-name:window-number, поэтому указание tmux new-window -t SESSION:приводит к созданию нового окна в сеансе. Можно использовать имя сеанса или номер по умолчанию.

8
27.01.2020, 20:53

Просто улучшаю ответ @David, потому что он не очень ясен для меня, и я потратил некоторое время на его изучение.

Предположим, мы создали сессию и окно этой командой:

tmux new-session -d -s my-session-1 -n my-window-1 'sleep 10000'

Чтобы добавить в него новое окно:

tmux new-window -n my-window-2 -t my-session-1: 'sleep 10000'

(обратите внимание на двоеточие после имени сеанса)

9
27.01.2020, 20:53

Теги

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