我想要一个自定义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 将缓冲区保存到该文件中。