如何在函数中生成PS1(转义问题)

时间:2013-05-02 15:49:32

标签: bash colors escaping command-prompt ps1

我想将我的bash提示符的结构移动到一个可以模块化构建它的函数中。问题是我无法弄清楚如何解释函数的结果。

示例:

function build_prompt {
  echo "\@"
}
export PS1="\$(build_prompt)"

我的提示始终显示为\@,但应该是当前时间。

当然有一些方法可以解决这个特定的例子,但是我想要一个通用的解决方案,所以我可以将它用于其他转义组件,例如颜色。

1 个答案:

答案 0 :(得分:1)

这是PROMPT_COMMAND变量的一个用例:在显示更新PS1值的提示之前运行函数。

function build_prompt {
    PS1='\@'
}
PROMPT_COMMAND='build_prompt'