Może być więcej skomplikowanych poleceń niż podane powyżej przykłady. Chciałem wykonać polecenie, które zostanie ponownie dołączone do istniejącej sesji tmux, o ile istnieje, ale nie jest już dołączone, lub nowe, jeśli nie ma żadnych dostępnych.
Patrząc na this example, bym zrobił coś takiego:
function tmosh() {
mosh $1 -- (tmux ls | grep -vq attached && tmux at -t $(tmux ls | grep -vm1 attached | cut -d: -f1)) || tmux new
}
Ale to nie działa, za pierwotnego pytania powyżej.
Moje rozwiązanie jakim jest mieć skrypt otoki na serwerach host:
tmux-reattach-if-exists
która składa się po prostu z:
(tmux ls | grep -vq attached && tmux at -t $(tmux ls | grep -vm1 attached | cut -d: -f1)) || tmux new
Następnie użyłem nazywa skrypt na kliencie z Mosh jak to:
function tmosh() {
mosh $1 -- tmux-reattach-if-exists
}
Jeśli istnieje rozwiązanie, które może to zrobić poprzez .tmux.conf bezpośrednio, że wo Byłoby wspaniale, ale nie mogłem tego wymyślić.
Myślę, że to, czego chcesz w drugim rozwiązaniu, to "najbardziej odległy - tmux a", w przeciwnym razie stworzy nową sesję za każdym razem, zamiast dołączać do już istniejącej. – Mortimer
możesz także zrobić 'tmux new-session -A -s somenameforsession' – igor