如何使用 TMUX 创建新窗格并在该窗格中运行命令

如何使用 TMUX 创建新窗格并在该窗格中运行命令

我有这个非常接近:

tmux new -d -s "$session_uuid"
tmux send-keys -t "${session_uuid}.0" "tsc -w"  ENTER
tmux send-keys -t "${session_uuid}.0" "nodemon" ENTER
tmux attach -t "$session_uuid"

首先,我不确定 .0 是什么...那是窗口 ID 吗?

我想要做的是并排创建两个垂直窗格,并tsc -w在左窗格和nodemon右窗格中运行。有谁知道如何做到这一点?

答案1

目标是 session:window.pane 因此,对于session.00是窗格编号,但您不需要它,因为无论如何,新会话中只有一个窗口,只需会话名称就足够了(如果你想确保 tmux 知道这是一个会话)。

您需要使用split-window将窗口分成两个窗格,如下所示:

tmux new -d -s "$session_uuid" "tsc -w"
tmux splitw -t "$session_uuid:" -dh "nodemon"
tmux attach -t "$session_uuid"

如果您希望能够退出程序并返回到 shell,send-keys请像示例中那样使用,注意.1第二个中的send-keys来定位第二个窗格(在第一个窗口时,窗口只有一个窗格,因此它不是需要):

tmux new -d -s "$session_uuid"
tmux send -t"$session_uuid:" "tsc -w" Enter
tmux splitw -t "$session_uuid:" -dh
tmux send -t"$session_uuid:.1" "nodemon" Enter
tmux attach -t "$session_uuid"

如果你只是想让 tmux 分配会话名称,你可以使用-P来获取目标。

S=$(tmux new -dP "tsc -w")
tmux splitw -t$S -dh "nodemon"
tmux attach -t$S

相关内容