开始你想要的外壳得到什么:
iwgetid | cut -d '"' -f 2
敷在#()
,这样它将作为一个shell命令的status-left
扩展处理:
#(iwgetid | cut -d '"' -f 2)
嵌入此作为一个字符串,tmux可以解析。你试图把它周围的单引号:
'#(iwgetid | cut -d '"' -f 2)'
的问题是,TMUX将解释“内部”单引号的第一和第一个“外”单引号作为单个弦线段,在它现在形成未终止的字符串段的顶层留下以下双引号;错误信息在这种情况下并不十分清楚。
要解决此问题,您需要正确引用格式字符串(它嵌入了shell命令),以便为您所选的tmux引用字符引用。你可能不喜欢这样:
set -g status-left '#(iwgetid | cut -d '"'\"'"' -f 2)'
但是,这是一个有点难以阅读,因此,您可以考虑转换你的shell命令的东西更容易TMUX -quotable:
iwgetid | cut -d \" -f 2
哪您可以在status-left
嵌入与TMUX单引号是这样的:
set -g status-left '#(iwgetid | cut -d \" -f 2)'
或与TMUX双引号是这样的:
set -g status-left "#(iwgetid | cut -d \\\" -f 2)"
记住TMUX报价类似,但引用不相同的Bourne风格的shell(例如顶级反斜杠转义不起作用)。此引用系统用于配置文件command-prompt
(例如前缀:
),confirm-before
和if-shell
命令参数以及choose-
命令的命令模板中。