【问题标题】:Command Won't Ouput in Colour when Called from bashrc从 bashrc 调用时,命令不会以颜色输出
【发布时间】:2022-01-25 06:05:48
【问题描述】:

我的.bashrc 中有以下内容:

color_prompt=yes
force_color_prompt=yes
if [ "$color_prompt" = yes ]; then
    PS1='$(some_command)\$ '
else
    PS1='\$ '
fi
unset color_prompt force_color_prompt

其中some_command 是一个可执行文件,它输出带有颜色集的字符串。但是,当我将其用于提示时,颜色不存在。如果我手动执行 some_command 输出有颜色所以我不确定为什么当我将它添加到 .bashrc 时它没有。

有人可以帮忙吗?我不知道下一步该尝试什么。

【问题讨论】:

  • @markp-fuso 所以不幸的是这不起作用。它再次输出,但没有颜色。
  • @rowboat 但这是一个终端提示,那不是连接到终端吗?我将如何进行测试/确认?
  • 如果它有手册页,请先阅读它。当我们不知道您询问的是哪个命令时,我们真的无能为力。
  • 如果我输入PS1='$(grep --color=auto . /etc/timezone)\$ ',我没有颜色,如果我切换到--color=yes,我会这样做。
  • @markp-fuso 您通常希望将提示命令放在单引号中,以便在每次显示提示时重新执行它,而不是硬编码定义提示时的输出。

标签: bash colors


【解决方案1】:

好的,所以上面的some_command 使用colored crate 来设置文本的颜色。这需要设置CLICOLOR_FORCE 环境变量。设置后,一切都按预期工作。

感谢@tripleee、@markp-fuso 和 @rowboat 的帮助!

【讨论】:

    猜你喜欢
    • 2021-12-04
    • 2020-03-20
    • 1970-01-01
    • 1970-01-01
    • 2011-01-05
    • 2016-03-27
    • 2015-11-05
    • 1970-01-01
    • 2021-08-16
    相关资源
    最近更新 更多