如何在 tmux 中转储内部会话变量?

l00*_*00p 4 linux tmux

我想从 tmux 会话中 获取window_name变量的值。

showenv '#{window_name}'
Run Code Online (Sandbox Code Playgroud)

给出一个错误

未知变量:#{window_name}

变量名称的任何其他形式的规范:用单引号或双引号引起来的#window_name 或 {window_name}都会产生相同的错误。

我怎样才能得到它的价值?

use*_*686 6

“showenv”不起作用,因为这些根本不是环境变量。(虽然它们在 shell 脚本中可能是类似的东西,但它们实际上生活在完全不同的世界中,shell 只是假装环境变量是 shell 变量。)还要注意,the#the{\xe2\x80\xa6}都不是变量名称的一部分;它们都仅表示扩展本身。

\n\n

要列出所有格式变量,您可以使用tmux display-message -a或阅读 tmux 手册页“格式”部分下提供的列表。

\n\n
$ tmux display-message -a\nalternate_on=0\nalternate_saved_x=0\nalternate_saved_y=0\nbuffer_mode_format=#{buffer_size} bytes (#{t:buffer_created})\nclient_control_mode=0\n
Run Code Online (Sandbox Code Playgroud)\n\n

要从命令行测试扩展,请使用tmux display-message [-p] <text>

\n\n
$ tmux display-message -p "This is #{window_name} in #{session_name}."\nThis is bash in 0.\n
Run Code Online (Sandbox Code Playgroud)\n