Я пишу сценарий. Я действительно хочу это знать. Я надеюсь, что исполняемый файл tmux скажет мне это.
я нахожу
tmux rename <newname>
Можно переименовать текущую сессию. Но я не могу найти команду, чтобы получить свое собственное имя.
В tmux 1.2 (и более поздних версиях) вы можете использовать -p
опцию display-message
для вывода сообщения на стандартный вывод (вместо отображения его на подключенном клиенте):
tmux display-message -p '#S'
#S
форматируется как имя сеанса (см. описание status-left
опции на странице руководства).
Я удивлен, что спустя почти 5 лет никто не указал, что ни один из этих ответов не является адекватным. Хотя оба работают нормально, если текущий TTY подключен к единственному сеансу tmux на хосте, оба эти ответа не срабатывают, если:
В первом случае оба ответа здесь сообщают имя присоединенного сеанса (независимо от того, управляется ли текущий tty этим сеансом). В последнем случае результат может быть неопределенным или приведет к множественным ответам.
Правильный вопрос должен звучать так: «Как называется сеанс tmux, к которому присоединен мой текущий сеанс терминала?»
Чтобы он ответил на этот вопрос, выполните:
Это работает независимо от количества сеансов tmux (подключенных или иных) и независимо от того, является ли текущий сеанс терминала частью сеанса tmux или нет.
источник
tmux list-panes -a -F '#{pane_tty} #{session_name}'
для перечисления панелей каждого сеанса. Не уверен, что нового-a
, так что YMMV.TMUX
переменной среды перед запускомtmux display-message -p '#S'
для типичной настройки рабочего стола.Extended / исправленный ответ ТИМ-народов игровая согласно don_crissti свой комментарий на Почему это
grep -v
не работает , как ожидалось? ,Команда "$ (tty)" в ответе tim-people
не будет работать в этом контексте, как ожидалось. Он оценивает строку «не tty».
Замена на переменную решает эту проблему.
Кроме того, когда нет сеансов tmux, оригинальный код будет производить
Сообщение об ошибке «сервер не работает в / tmp / tmux-1000 / default» .
Добавьте
2>/dev/null
и код будет работать без вывода сообщения об ошибке.Модифицированный код читается как:
источник
tty
.Вместо этого я обнаружил, что это работает точно для меня:
источник
Не идеально, но вы можете извлечь имя прикрепленного сеанса с помощью
awk
:Пользовательский формат немного легче разобрать, чем стандартный.
источник