tmux 绑定键保存输出

tmux 绑定键保存输出

我想要一个自定义tmux绑定键来将屏幕输出保存到一个唯一的文件。

这有效

bind-key S capture-pane -S -99999 \; save-buffer /tmp/tmux.txt \; delete-buffer

但无论是否转义$和 括号,这些都不是。

bind-key S capture-pane -S -99999 \; save-buffer $(mktemp --suffix=.txt) \; delete-buffer

bind-key S capture-pane -S -99999 \; save-buffer $(date +'/tmp/tmux-%s.txt') \; delete-buffer

是否有可能做到这一点?

答案1

$()由 shell 评估,因此您需要将其作为 shell 命令运行:

bind-key S capture-pane -S -99999 \; run-shell 'tmux save-buffer $(date +"/tmp/tmux-%s.txt")' \; delete-buffer

重要的部分是:

run-shell 'tmux save-buffer $(date +"/tmp/tmux-%s.txt")'

这将启动一个 shell,展开$(date..)命令,然后告诉 tmux 将缓冲区保存到该文件中。

相关内容