Script com tmux?


0

Posso criar várias bash/ shinstruções para abrir e executar em tmuxpainéis separados ?

Eu tenho cerca de 5 comandos diferentes que precisam ser executados simultaneamente ou consecutivamente.

Normalmente, digito todos eles manualmente em seus painéis separados; Eu tenho um pouco de um layout personalizado acontecendo.

Respostas:


1

Se você já está na sessão do tmux, pode executar algum comando em uma nova janela, como abaixo:

$ tmux neww {command}

Além disso, se você deseja dividir a janela e executar o comando:

$ tmux splitw {command}

Aqui está um exemplo de execução de tail -f para vários arquivos no diretório de log:

$ find logs/ -name '*.log' | xargs -n1 -I{} bash -c 'tmux splitw "tail -f $1"; tmux select-layout main-vertical' -- {}

tmux select-layout parte é para corrigir o layout do painel.


adicionado conforme o comentário:

Você pode usar:

$ tmux new {command}

Se você não estiver na sessão do tmux. Então você pode combinar isso assim.

test.sh:

tmux new -s foo "bash tmux-test.sh; wait"

tmux-test.sh:

tmux neww htop
tmux neww htop
tmux splitw htop

e então execute test.sh


11
Legal, mas e se eu ainda não estiver em uma tmuxsessão? Eu gostaria que ele fosse salvo como um .shscript (ou similar), se possível. Eu acho que você pode estar em algo aqui. Obrigado!
— tjt263

Janelas e painéis que são abertos nos comandos acima serão fechados quando isso {command}terminar. Por exemplo, tmux new datelança uma nova janela que é executada datee, como o datecomando termina imediatamente, a tmuxsessão também é finalizada.
— precisa saber é o seguinte

Não funciona para mim.
— BonsaiOak
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.