Bash scripts com o tmux para iniciar uma janela de 4 painéis

1

Alguém pode ajudar a explicar o que está acontecendo com tmux , bash e exec ? Estou tentando configurar uma sessão do tmux com uma janela de 4 painéis. Idealmente, quero executar um comando em três dos painéis: por exemplo, um servidor Ruby Thin e alguns daemons Ruby. Isso é o que eu tenho até agora:

~/.bin/tmux-foo :

#!/bin/sh

tmux new-session -d -s foo 'exec pfoo "bundle exec thin start"'
tmux rename-window 'Foo'
tmux select-window -t foo:0
tmux split-window -h 'exec pfoo "bundle exec compass watch"'
tmux split-window -v -t 0 'exec pfoo "rake ts:start"'
tmux split-window -v -t 1 'exec pfoo'
tmux -2 attach-session -t foo

~/.bin/pfoo :

#!/bin/bash
cd ~/projects/foo
rvm use ree

# here I want to execute command1 2 3 or 4...

exec $SHELL

Tudo funciona ... mas quando eu ctlr-c no primeiro painel que está executando o servidor thin, ele pára o servidor thin e retorna ao shell. No entanto, o comando não está no histórico; ou seja, se eu apertar a tecla para cima eu não obtenho o comando bundle exec thin start ... Eu recebo outro comando do meu histórico bash. Eu estou querendo saber se há alguma maneira de organizar esses scripts para que eu obtenha os comandos no histórico bash.

Também ... Eu tentei muitas combinações de exec , exec $SHELL -s ... e exec $SHELL -s ... -I e não tenho certeza do que está acontecendo ...

Alguém pode ajudar a explicar a ideia geral do que está acontecendo com tmux e bash e exec aqui?

    
por Aaron Gibralter 27.03.2011 / 19:32

2 respostas

1

Acontece que eu queria algo assim:

tmux splitw -t 'foo':2
tmux send-keys -t 'foo':2 'rvm use ree' C-m
tmux send-keys -t 'foo':2 'bundle exec compass watch

send-keys com C-m executará o comando na janela / painel e o manterá no histórico.

    
por 02.04.2011 / 23:26
0

Os comandos não estão no histórico do shell simplesmente porque você iniciou o shell após executar esses comandos. Ctrl-C não retorna para um shell; isso faz com que pfoo inicie um novo (a linha exec $SHELL ).

    
por 27.03.2011 / 20:32

Tags