Executar comando na sessão tmux desanexada

24

Provavelmente isso é simples, mas realmente não consigo descobrir como você faz isso. Eu li as páginas de manual e pesquisei sem resultados.

Problema: Como executo um comando em uma janela tmux desanexada?

Exemplo: quero que minha janela desanexada 'foo' execute 'ls', mas quero fazê-lo em outro terminal.

Eu tentei coisas como: 'tmux -t foo ls' sem resultados.

Accatyyc
fonte

Respostas:

39

O comando é send. sendé uma sequência chave, portanto, trate-a adequadamente (por exemplo, você provavelmente desejará ENTER). O destino é especificado com -t. Você pode querer foo.0 ou foo.1, dependendo do painel que deseja bater.

tmux send -t foo.0 ls ENTER

sendé uma abreviação de send-keys, localizada nas páginas de manual, mas talvez um pouco difícil de encontrar nessa milha de texto.

84104
fonte
Ótima resposta. Muito informativo e funciona um charme. Obrigado!
Accatyyc
A solução mais majestosa para esse problema! Agradecimentos maciços!
Feball
2
Observe que, para direcionar uma janela específica em uma sessão específica, você as separa com dois pontos =>tmux send-keys -t foosession:foo.0 ls ENTER
nickspoon 17/17/17
Se quiser enviar espaços entre as palavras, coloque o comando entre dois apóstrofos. O comando ENTER ainda deve estar fora. Isso funciona para mim no UBUNTU 16.04: tmux send -t session_name 'echo durp'ENTER
TrollAxeThrower