有人能解释一下 tmux
、 bash
和 exec
是怎么回事吗?我正在尝试建立一个四窗格窗口的 Tmux 会话。理想情况下,我想在3个窗格中运行一个命令: 比如一个 Ruby 瘦服务器和几个 Ruby 守护进程。以下是我目前掌握的情况:
返回文章页面
#!/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
时,它会停止瘦服务器并返回到 shell。但是,这个命令不在历史记录中; 也就是说,如果我按了 up 键,就不会得到 bundle exec thin start
命令... ... 我会从 bash 历史记录中得到一些其他的命令。我想知道是否有办法安排这些脚本,以便在 bash 历史记录中获取命令。
还有... 我试过很多 exec
,exec $SHELL -s ...
和 exec $SHELL -s ... -I
的组合,我不太清楚是怎么回事..。
有没有人能帮忙解释一下 tmux
、 bash
和 exec
到底是怎么回事?