以下命令
tmux new -A -s $(date +%Y%m%d%H%M%S)
工作并tmux
从一个会话开始,该会话以当前日期时间命名(如预期)。
但是如果我在ssh
配置中添加相同的内容
RemoteCommand tmux new -A -s $(date +%Y%m%d%H%M%S)
它说
percent_expand: unknown key %Y
为什么以及如何解决?
显然,ssh
试图展开百分号. 如何禁用/退出此扩展?
答案1
%%
在需要文字的地方使用%
。这是非常常见的:在大多数具有单个转义字符的语法中,将该字符加倍会产生文字字符。例如,\\
匹配正则表达式中的文字反斜杠、\\
在 shell 不带引号或双引号的单词中获取文字反斜杠字符、在输出%%
中获取文字百分号等。printf
RemoteCommand tmux new -A -s $(date +%Y%m%d%H%M%S)
你找到的汇总表并没有费心去列出%%
,但是OpenSSH 手册确实如此。
如果您希望在输出中使用字面百分号date
(无论出于何种原因),您可以将 for 翻倍%
:date
在date +%Y%m%d%%%H%M%S
日期和时间之间放置一个百分号。在 SSH 远程命令中,您需要将date
SSH 的值加倍,将 SSH 的值加倍,因此 4%
代表 1:RemoteCommand tmux new -A -s $(date +%Y%m%d%%%%%H%M%S)
。