Como despejar variáveis ​​de sessão internas no tmux?

Como despejar variáveis ​​de sessão internas no tmux?

Gostaria de obter um valor denome_da_janelavariável de dentro de uma sessão tmux.

showenv '#{window_name}'

Dá um erro

Variável desconhecida: #{window_name}

Qualquer outra forma de especificação do nome da variável:#nome_da_janela ou {nome_da_janela}citado com aspas simples ou duplas dá o mesmo erro.

Como posso obter o valor?

Responder1

"showenv" não funcionará, porque essas não são variáveis ​​de ambiente. (Embora possam ser coisas semelhantesem um script de shell, eles na verdade vivem em mundos completamente separados, um shell apenas finge que as variáveis ​​de ambiente são variáveis ​​de shell.) Observe também quenenhumthe #nem the {…}não fazem parte do nome da variável; ambos indicam apenas uma expansão em si.

Para listar todosformatarvariáveis, você pode usar tmux display-message -aou apenas ler a lista fornecida na página de manual do tmux, na seção "FORMATOS".

$ tmux display-message -a
alternate_on=0
alternate_saved_x=0
alternate_saved_y=0
buffer_mode_format=#{buffer_size} bytes (#{t:buffer_created})
client_control_mode=0

Para testar expansões na linha de comando, use tmux display-message [-p] <text>:

$ tmux display-message -p "This is #{window_name} in #{session_name}."
This is bash in 0.

informação relacionada