4-paned 창을 시작하는 tmux가있는 bash 스크립트


1

아무도 무슨 일이 일어나고 있는지 설명 할 수 있습니까? tmux, bash, 및 exec? 4 창 창으로 tmux 세션을 설정하려고합니다. 이상적으로는 3 개의 창에서 명령을 실행하고 싶습니다. 루비 씬 서버와 몇 개의 루비 데몬. 이것은 내가 지금까지 가지고있는 것이다 :

~/.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

그것은 모두 작동하지만 ... ctlr-c 씬 서버를 실행중인 첫 번째 창에서 씬 서버를 중지하고 셸로 돌아갑니다. 그러나이 명령은 역사에 없다. 즉 위로 키를 누르면 bundle exec thin start 명령 ... 나는 배시 역사에서 다른 명령을 받는다. 나는 bash 역사에서 명령을 얻을 수 있도록 이러한 스크립트를 정렬 할 수있는 방법이 있는지 궁금하네요.

또한 ... 나는 많은 조합을 시도했다. exec, exec $SHELL -s ..., 및 exec $SHELL -s ... -I 무슨 일이 일어나고 있는지 잘 모르겠다.

아무도 무슨 일이 일어나고 있는지에 대한 일반적인 생각을 설명 할 수 있습니까? tmuxbashexec 이리?

답변:


1

내가 이런 것을 원했다는 것이 밝혀졌다.

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-keysC-m 창 / 창에서 명령을 실행하고이를 기록에 보관합니다.


0

명령은 쉘을 시작했기 때문에 쉘 역사에 없습니다. 그 명령을 실행합니다. Ctrl-C는 그렇지 않습니다. 반환 껍질에; 그것은 원인 pfoo 새 것을 시작하려면 ( exec $SHELL 선).


아 ... 말이 되네. 역사에 대한 명령을받는 방법에 대해 알고 있습니까? 할 수있는 방법이 있습니까? exec $SHELL 명령은?
Aaron Gibralter

@ 아론 : 1) 역사 파일에 추가 echo "$@" >> ~/.bash_history ) 실행하기 전에. 2) 아니오.
grawity
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.