(重写)这不是How to set up tmux so that it starts up with specified windows opened?的欺骗。这个问题围绕配置tmux,没有一个答案可以解答这个问题。 (尾注)
假设我有两个命令
tail -f log1
tail -f log2
我如何以编程方式调用tmux水平分割窗口并在其自己的窗格中运行每个命令,类似于:
for i in log1 log2; do xterm -e tail -f $i& done
答案 0 :(得分:3)
没有一个命令可以完成这个任务;相反,您将多个命令发送到服务器。但是,这可以通过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"