gpt4 book ai didi

linux - tmux的配置文件出错

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:23:27 25 4
gpt4 key购买 nike

.tmux.conf 文件中,我有这一行:

set -g status-left '#(iwgetid | cut -d '"' -f 2)'

当我运行 tmux 时抛出错误:

/home/user/.tmux.conf:8: invalid or unknown command: set -g status-left '#(iwgetid | cut -d '"' -f 2)'

错误在 " 处,因为当我用 , 更改它时,tmux 不会抛出错误。当然,它的行为也不如预期。

谁能告诉我如何解决这个问题?

我已经试过转义 "' 但运气不好。

最佳答案

从您希望 shell 获取的内容开始:

iwgetid | cut -d '"' -f 2

将它包裹在#()中,这样在status-left的扩展中它会被当作一个shell命令:

#(iwgetid | cut -d '"' -f 2)

将其嵌入为 tmux 可以解析的字符串。你试图在它周围加上单引号:

'#(iwgetid | cut -d '"' -f 2)'

问题是 tmux 会将“内部”单引号中的第一个和“外部”单引号中的第一个解释为单个字符串段,并在顶部留下以下双引号-现在它形成一个未终止的字符串段的级别;在这种情况下,错误消息不是很清楚。

要解决此问题,您需要为所选的 tmux 引用字符正确引用格式字符串(嵌入 shell 命令)。你可以这样做:

set -g status-left '#(iwgetid | cut -d '"'\"'"' -f 2)'

但是,这有点难读,因此您可以考虑将 shell 命令切换为更容易tmux-quotable 的命令:

iwgetid | cut -d \" -f 2

您可以使用 tmux 单引号将其嵌入到 status-left 中,如下所示:

set -g status-left '#(iwgetid | cut -d \" -f 2)'

或者像这样使用 tmux 双引号:

set -g status-left "#(iwgetid | cut -d \\\" -f 2)"

请记住,tmux 引用类似于 Bourne 风格的 shell 引用,但不完全相同(例如,顶级反斜杠转义的工作方式不同)。此引用系统用于配置文件、命令提示符(例如前缀 :)、confirm-beforeif- shell 命令参数,以及 choose- 命令的命令模板。

关于linux - tmux的配置文件出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17397127/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com