Intereting Posts
Почему 666 разрешений на создание файлов по умолчанию? Wget не конвертирует ссылки и загружается правильно? Не удалось разрешить хост: mirrorlist.centos.org Можно ли сохранить как sudo из nano после того, как вы забыли работать как sudo? Как запустить команду против всех файлов определенных типов в файловой системе? Если я использую туннель SSH для пересылки удаленного порта на локальный, и мой IP-адрес изменится, будет ли этот туннель работать еще? Docear on Kubuntu 12.04 64 Не удается остановить Kerberos на debian 8 Почему оболочка не заканчивается при нажатии Ctrl + C на терминале? LibreOffice 4.2 Размер архива PPA? Создание локальной рабочей области для разработки / тестирования Попытка распечатать полную строку из огромного файла с \ (коннектором для строк) ln -s сообщает, что процедура не удалась, но тем не менее создает символические ссылки Как использовать '(' токен при его использовании для поиска с помощью ag / awk? Создайте репозиторий для домашних пакетов для RHEL с базовым CentOS

tmux start process, если он еще не запущен

В моем .zshrc меня есть немного логики, которая автоматически запустит сеанс tmux или, если сеансы уже запущены, предложите подключиться к одному из них или создать новый и подключиться к нему. Все это отлично работает, но у меня есть новое требование, которое я не могу понять: когда начинается новый сеанс и какой-то конкретный процесс не выполняется, запустите этот процесс и создайте новое окно; если этот процесс работает где-то, тогда просто запустите новый сеанс как обычно.

В этом случае я хочу, чтобы irssi запускался автоматически в один сеанс. Следующее (где $choice в отношении процесса выбора, как описано выше) находится так близко, как я пришел, чтобы заставить его работать:

 exec tmux -2 new-session -A -s $choice $(pgrep irssi || echo "irssi; new-window") 

Это отлично работает, когда у меня есть только один сеанс – это большая часть времени, но если я попытаюсь создать новый сеанс, он сразу же отделяется.

Если я вычту из вышеперечисленного в условное:

 if pgrep irssi; then exec tmux -2 new-session -A -s $choice else exec tmux -2 new-session -A -s $choice "irssi; new-window" # splitting out `tmux new-window` also doesn't work fi 

… У меня противоположная проблема в том, что теперь вторичные (не-irssi) сеансы начинаются нормально, без отрыва сразу, но irssi-session получает окно irssi, и новое окно оболочки не появляется. (Это возможно ближе к тому, что я хочу, чем первая версия, но потому, что у меня почти всегда есть только один сеанс, который выигрывает, поскольку эта версия заставляет меня делать Prefix-c для нового окна.)