Сценарии Bash с tmux для запуска 4 разделенного на области окна

Может любой помогать объяснить, что продолжает tmux, bash, и exec? Я пытаюсь настроить tmux сессию с окном с 4 областями. Идеально, я хочу выполнить команду в 3 из областей: например, Ruby Тонкий сервер и несколько демонов Ruby. Это - то, что я имею до сих пор:

~/.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 команда... Я получаю некоторую другую команду из своей истории удара. Я задаюсь вопросом, существует ли какой-либо способ расположить эти сценарии так, чтобы я получил команды в истории удара.

Также... Я попробовал много комбинаций exec, exec $SHELL -s ..., и exec $SHELL -s ... -I и я не совсем уверен, что продолжается...

Может любой помогать объяснить общее представление о том, что продолжает tmux и bash и exec здесь?

1
задан 27.03.2011, 20:32

2 ответа

Оказывается, что я хотел что-то вроде этого:

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 с C-m выполнит команду в окне/области и сохранит его в истории.

1
ответ дан 17.12.2019, 00:23

Команды не находятся в истории оболочки просто, потому что Вы запустили оболочку после выполнения тех команд. Ctrl-C не возвращается к оболочке; это вызывает pfoo запустить новый ( exec $SHELL строка).

0
ответ дан 17.12.2019, 00:23

Теги

Похожие вопросы