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

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

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

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

tmux display-message -p -t %21 >/dev/null && echo 123

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

答案1

你的方式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

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

答案2

没关系。或者您可以使用例如 lsp -F'#{pane_id}'|grep -q ^%21$。

相关内容