按名称获取 tmux 窗口索引

按名称获取 tmux 窗口索引

有没有一种方法,在 tmux 之外,在特定会话中通过窗口名称获取窗口索引,前提是有
0 或 1 个具有给定名称的窗口?
我需要此信息来防止创建具有相同名称的窗口,
因此我要么获取要附加的窗口索引,要么如果没有具有给定名称的窗口,则创建一个。

答案1

您可以通过 获取此信息tmux list-windows。要列出所有会话中的所有窗口,请使用该-a标志或使用 指定会话 ID -t

如果您想要窗口 ID,您可以使用类似以下内容的内容:

tmux list-windows -F '#I "#W"' | awk '$2 ~ /"NAME"/ { print $1 }'

如果您只想知道它是否存在:

NAME=foo
if tmux list-windows -F '#W' | grep -q "^$NAME\$"; then
    echo $NAME exists
else
    # create new window ...
fi

相关内容