Vorrei tmux
per creare una nuova finestra quando ssh su una macchina da una sessione tmux esistente. Tuttavia, non voglio che una sessione di tmux venga avviata sulla nuova macchina!
Ho quanto segue nel mio .bashrc
, in modo che tmux
si avvia automaticamente:
if [[ "$TERM" != "screen" ]]
then
# try to attach to existing session, or start a new one
tmux attach-session -t "$USER" || tmux -2 new-session -s "$USER"
exit
fi
Ho anche un ssh
funzione:
alias ssh='ssh_func'
ssh_func (){
if [[ "$TERM" == "screen" ]]; then
tmux new-window -n "$1" "ssh [email protected]";
else
/usr/bin/ssh "[email protected]";
fi
}
Funziona bene, ma non voglio che una sessione tmux venga avviata sulla macchina su cui ssh, perché questo mi dà 2 sessioni nella stessa finestra del terminale. C'è qualcosa che posso inserire nel mio .bashrc
in modo che tmux non si avvii su una macchina se il comando ssh è stato invocato da una sessione tmux?
Sto usando PuTTY e tmux 1.5.
Risposta accettata:
Dato il codice che hai pubblicato, se esegui ssh da tmux, avrai $TERM
=screen
, quindi non tenterai di collegarti a una finestra di tmux. In altre parole, il codice che hai già dovrebbe funzionare come desiderato. Sta succedendo qualcosa di sospetto. Assicurati che i tuoi file dot non rovinino il TERM
variabile (se devi modificare TERM
, cosa molto rara, assicurati di farlo solo in circostanze molto specifiche; in particolare non cambiarlo se è screen
).