Piszę scenariusz. Naprawdę chcę to wiedzieć. Mam nadzieję, że plik wykonywalny tmux może mi to powiedzieć.
znajduję
tmux rename <newname>
może zmienić nazwę bieżącej sesji. Ale nie mogę znaleźć polecenia pobrania własnej nazwy.
W tmux 1.2 (i nowszych) możesz użyć -p
opcji wypisaniadisplay-message
komunikatu na standardowe wyjście (zamiast wyświetlania go na dołączonym kliencie):
tmux display-message -p '#S'
#S
jest sformatowany jako nazwa sesji (zobacz opis status-left
opcji na stronie man).
Dziwi mnie, że po prawie 5 latach nikt nie zauważył, że żadna z tych odpowiedzi nie jest odpowiednia. Chociaż oba działają dobrze, o ile bieżący TTY jest dołączony do jedynej sesji tmux na hoście, obie te odpowiedzi nie działają, jeśli:
W pierwszym przypadku obie odpowiedzi podają tutaj nazwę dołączonej sesji (niezależnie od tego, czy bieżący tty jest zarządzany przez tę sesję). W tym drugim przypadku wynik jest prawdopodobnie nieokreślony lub spowoduje powstanie wielu odpowiedzi.
Prawidłowe pytanie powinno brzmieć: „Jak nazywa się sesja tmux, do której dołączona jest moja bieżąca sesja terminalowa?”
Aby odpowiedzieć na to pytanie, wykonaj:
Działa to niezależnie od liczby sesji tmux (dołączonych lub innych) i niezależnie od tego, czy bieżąca sesja terminalowa jest częścią sesji tmux, czy nie.
źródło
tmux list-panes -a -F '#{pane_tty} #{session_name}'
do wyświetlenia listy paneli każdej sesji. Nie jestem pewien, jak nowy-a
jest, więc YMMV.TMUX
zmiennej środowiskowej przed uruchomieniemtmux display-message -p '#S'
dla typowej konfiguracji pulpitu.Rozszerzony / poprawione odpowiedź Tim-Peoples męska zgodnie komentarzu don_crissti koszulka na Dlaczego to
grep -v
nie działa jak powinno? .Komenda „$ (tty)” w odpowiedzi ludzi czasu
nie działałby w tym kontekście zgodnie z oczekiwaniami. Zwraca wartość ciągu „nie tty”.
Zastąpienie go zmienną rozwiązuje ten problem.
Ponadto, gdy nie istnieją sesje tmux, oryginalny kod wygeneruje
Komunikat o błędzie „Brak serwera działającego na / tmp / tmux-1000 / default” .
Dodaj,
2>/dev/null
a kod będzie działał bez drukowania komunikatu o błędzie.Zmodyfikowany kod brzmi:
źródło
tty
.Zamiast tego uważam, że działa to dla mnie dokładnie:
źródło
Nie jest to idealne, ale możesz wyodrębnić nazwę dołączonej sesji za pomocą
awk
:Format niestandardowy jest nieco łatwiejszy do przeanalizowania niż domyślny.
źródło