bash: Executando o script de bloqueio no Tmux

0

Estou tentando executar dois scripts em dois painéis TMUX diferentes a partir de um arquivo bash. O problema é que eles estão todos bloqueando, então, depois de executar um processo em um painel, não posso passar para o outro painel para executar o outro trabalho.

Como posso superar esse problema?

Vou postar o exemplo de código.

#! /bin/bash
tmux split-window -v
tmux select-pane -t 0
./blocking_script_1
tmux select-pane -t 1 #doesnt happen
./blocking-script_2  #doesnt happen

Obrigado

Liam

    
por Liam F-A 26.07.2017 / 23:54

1 resposta

0

Isso deve fazer o que você quiser.

#!/bin/bash
tmux split-window -v
tmux send-keys -t 0 ./blocking_script_1 C-m
./blocking-script_2

Em vez de alternar painéis e executar blocking_script_1, ele envia as teclas necessárias para executá-lo, seguido por um retorno de carro (Ctrl-M, também conhecido como Enter ou C-m ). Em seguida, ele executa o blocking_script_2 no painel atual (que não mudou, ainda o painel -t1)

Se você precisar fornecer argumentos para blocking_script_1, coloque o comando inteiro e todos os seus argumentos entre aspas duplas, ou use \ para escapar dos espaços. por exemplo,

tmux send-keys -t 0 "./blocking_script_1 arg1 arg2 arg3..." C-m

ou

tmux send-keys -t 0 ./blocking_script_1\ arg1\ arg2\ arg3... C-m
    
por 27.07.2017 / 10:25