Есть ли способ получить идентификатор активной панели для панелей tmux?

Я пишу сценарий bash, который перебирает все открытые панели и выполняет несколько команд отправки ключей. За исключением того, что я хочу применить другую логику для панели, в которой я выполняю этот скрипт, чтобы предотвратить прерывание скрипта ключами отправки.

Есть ли команда для получения идентификатора панели, в которой я сейчас работаю, для tmux?


person eswidler    schedule 16.08.2014    source источник


Ответы (2)


Переменная окружения TMUX_PANE — это то, что вам нужно.

person chepner    schedule 16.08.2014
comment
Это то, что мне нужно. Спасибо! - person eswidler; 18.08.2014

Существует также переменная формата pane_id, которая расширяется до уникального идентификатора панели.

Пример использования:

$ tmux run "echo 'This is unique pane id: #{pane_id}'"
person Community    schedule 19.08.2014
comment
Для тех, кто может полагаться на это: это неверно, если у вас есть несколько активных сеансов (т. Е. Если tmux choose-tree -s и tmux choose-tree -w показывают две разные вещи). ${TMUX_PANE} безопаснее. - person Trey; 20.11.2019
comment
#{pane_id} — это идентификатор текущей активной панели, а не панели, в которой был запущен скрипт. Эти два могут быть разными во многих случаях, например. если вы запустите свой скрипт и тем временем переключите панель или если вы запустите команду в панели, отличной от активной, например. через tmux send-keys. - person Jakub Nowak; 14.04.2021