我正在编写一个脚本,该脚本将设置用于rails开发的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和几秒钟后通常的提示。
我怎样才能做到这一点?
发布于 2015-09-10 14:28:30
您可以将这些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起作用,但是您可以通过&回退来实现同样的效果。
发布于 2015-09-10 16:35:48
您需要定义一个会话来将所有内容附加到。例如:
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使用3个窗口创建一个名为c64的会话。然后将命令发送到第三个窗口,使其成为当前窗口并附加到会话。
发布于 2015-09-10 14:27:28
我认为你可以很好地利用IniTmux。这是我创建的python脚本。
https://stackoverflow.com/questions/32502584
复制相似问题