2015-09-10 2 views
2

Я пытаюсь написать скрипт, который будет настройка tmux окна для развития рельсов, до сих пор у меня есть это:Используйте Баш скрипт для установки tmux окон

#!/bin/bash 
tmux new-window -n vim 
tmux new-window -n guard 
tmux new-window -n console/server 

tmux select-window -t 3 
tmux send-keys -t 3 'rails server' C-z 

То, что я хочу, в этом конкретном окне, является для запуска rails server, а затем отправить его на задний план. Дело в том, что все, что я получаю, это ^Z и обычный запрос через пару секунд.

Как это сделать?

ответ

2

Вы можете объединить эти команды tmux так, чтобы все они были получены тем же сеансом. Отдельный по \; (бежал, чтобы получить всю дорогу до tmux):

#!/bin/bash 

tmux new -stest \; \ 
    new-window -n vim \; \ 
    new-window -n guard \; \ 
    new-window -n console/server 
    select-window -t 3 \; \ 
    send-keys -t 3 'rails s &' Enter 

Я не вижу в C-z работы, но вы можете достичь того же с & фоновым.

+0

Вот и все! Спасибо. –

1

Я думаю, вы могли бы хорошо использовать IniTmux. Это скрипт python, который я создал.

2

Вам нужно определить сеанс, чтобы прикрепить все. Например:

tmux new-session -s c64 -n vim -d 
tmux new-window -t c64 -d -n guard 
tmux new-window -t c64 -d -n console 
tmux send-keys -t c64:console 'rails server &' Enter 
tmux select-window -t c64:console 
tmux attach -t c64 

создает сеанс под названием c64 с 3-мя окнами. Затем он отправит команду в 3-е окно, сделает ее текущим окном и присоединяется к сеансу.

Смежные вопросы