2016-03-02 157 views
1

(抄录)这不是How to set up tmux so that it starts up with specified windows opened?的骗局。这个问题围绕着配置tmux而展开,没有任何答案能够解答这个问题。 (注完)tmux:以编程方式水平分割窗口并运行两个命令?

假设我有两个命令

tail -f log1 
tail -f log2 

我如何编程调用TMUX到水平相似的东西分割窗口,并在其自己的窗格中运行的每个命令,来:

for i in log1 log2; do xterm -e tail -f $i& done 
+1

的可能的复制[?如何设置TMUX,使之与指定打开的窗口启动(http://stackoverflow.com/问题/ 5609192 /如何设置tmux-so-it-it-starts-with-specified-windows-opened) – hek2mgl

+0

不是一个骗局。我对配置tmux启动不感兴趣,只是如何按照描述拆分当前窗口并运行命令。这些问题都没有答案。 –

+0

然后我没有看到问题。运行'tmux'然后'tail -f log1' ..然后按'Ctrl + b',然后按'%'。然后发出'tail -f log2'。它花了我5秒钟谷歌:http://www.dayid.org/comp/tm.html – hek2mgl

回答

2

有没有单一的命令来完成这一点;相反,您将多个命令发送到服务器。不过,这可以通过单个调用tmux来完成。

tmux new-session -d tail -f log1 \; split-window tail -f log2 \; attach 

请注意,转义分号用于分隔tmux命令。未转义的分号被视为由特定的tmux命令执行的shell命令的一部分。

适应你的问题的循环可能看起来像:

tmux_command="new-session -d" 
commands=("tail -f log1" "tail -f log2" "tail -f log3") 
tmux_command+=" ${commands[0]}" 
for cmd in "${commands[@]:1}"; do 
    tmux_command+="\; split-window $cmd" 
done 
tmux "$tmux_command \; attach" 
+0

完美,谢谢。我修正了第一个例子,删除了外面的一组单引号。 –

相关问题