TMUX:以编程方式水平拆分窗口并运行两个命令



(欺骗注释)这不是如何设置tmux以使它在打开指定窗口时启动的欺骗? 这个问题围绕着配置 tmux,那里没有一个答案能回答这个问题。(尾注)

假设我有两个命令

tail -f log1
tail -f log2

如何以编程方式调用 tmux 来水平拆分窗口并在自己的窗格中运行每个命令,类似于:

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

没有一个命令来完成此操作;相反,您向服务器发送多个命令。但是,这可以通过对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"

最新更新