如何测试 tmux 中是否存在窗格

ded*_*sdi 0 tmux shell-script

我是 tmux 新手,我想知道如何通过 pane_id 测试窗格是否关闭。

我现在正在使用以下脚本来完成这项工作:

tmux display-message -p -t %21 >/dev/null && echo 123
Run Code Online (Sandbox Code Playgroud)

它有效,但我不确定这是正确的方法。

Kam*_*ski 5

你的方式display-message是一种解决方法。还有另一个命令是为您想要的而设计的。man 1 tmux

has-session [-t target-session]
(别名:has)如果指定的会话不存在,
则报告错误并退出。1如果确实存在,则使用 退出0

它可能不是target-session一个会话、窗口或窗格。在您的情况下%21指的是窗格,请使用:

tmux has-session -t %21 2>/dev/null && echo 123
Run Code Online (Sandbox Code Playgroud)

请注意,还指定会话和窗口的语法也应该有效,例如$0:@1.%21or @1.%21(记住$0需要在 shell 中用单引号引起来)。如果您需要测试可能存在于某些非当前会话/窗口中的窗格,请使用它们。