Estoy escribiendo un script de shell que crea / adjunta o cambia a una sesión determinada, dependiendo de si hay uno dentro de tmux y la sesión existe.
Tengo todo funcionando muy bien, excepto por el caso que requiere la creación de una nueva sesión tmux desde dentro de una sesión tmux.
Cuando se ejecuta mi script tmux new-session -s name, obtengo el siguiente resultado:
las sesiones deben anidarse con cuidado, desarmar $ TMUX para forzar
En realidad, no quiero anidar sesiones, mi objetivo es crear otra sesión separada y cambiar a ella desde una sesión tmux .
es posible?

Respuestas:
La forma más rápida (suponiendo que la use
ctrl-bcomo prefijo de comando) es:Para crear una nueva sesión,
para seleccionar interactivamente y adjuntar a la sesión.
fuente
ctrl-b $Ctrl-b :new -s <name>darle un nombre a la nueva sesión.Cómo crear el guión
Este script comprobará si existe una sesión. Si la sesión no existe, cree una nueva sesión y adjúntela. Si la sesión existe no pasa nada y nos adjuntamos a esa sesión. Siéntase libre de reemplazar `~ / desarrollo 'con el nombre del proyecto.
$ touch ~/development && chmod +x ~/developmentNueva sesión desde terminal
Vamos a crear dos sesiones separadas, enumerarlas, adjuntarlas a una y luego, desde dentro de tmux, recorrer las sesiones.
tmux new -s name -dfunciona desde dentro de tmux porque estamos creando una nueva sesión separada. De lo contrario, obtendrá un error de anidamiento.Nueva sesión desde dentro de tmux
Ahora estamos dentro o más conocidos como adjuntos a nuestra sesión de destino. Si intentamos crear una nueva sesión mientras estamos adjuntos, se producirá un error de anidamiento.
Para solucionar esto creamos una nueva sesión separada. p.ej,
Sesiones de ciclo (cambio)
Prefix(sesión anteriorPrefix)próxima sesiónnota:
PrefixesCtrl-bpor defecto. Puede unirsePrefixaCtrl-a, y en Mac OS X puede cambiar el bloqueo de mayúsculas a ctrlsystem preferences > keyboard > modifier keysAdjuntar a una sesión usando el modo de comando mientras está dentro de tmux
Si intenta conectarse a una sesión sin desconectarse, se producirá un error.
En su lugar, use el modo de comando,
Prefix:luego escribaattach -t session_namey presione enter.fuente
Usar esto funciona para mí:
Se
TMUX=requiere en la primera línea para que tmux no arroje unsessions should be nested with care, unset $TMUX to forcemensaje.fuente
TMUX=`tmux new-session -d -s name`Todos los comandos que puede ejecutar dentro de su terminal, como
tmux new -s sessionNamese pueden ejecutar desde dentrotmuxpresionando la tecla de activación (por ejemplo:)ctrl-by:luego el comando sin latmuxparte inicial .Como resultado,
ctrl-b :seguido denew -s sessionNamehará exactamente lo que desea y le dará un nombre a su sesión. También cambia automáticamente a la nueva sesión.fuente
Puedes probar
unset TMUXprimero, esto funciona para mí.fuente
según el consejo de user2354696, utilizo las siguientes combinaciones de teclas para crear una nueva sesión o "clonar" una sesión existente
fuente