我的 .bash_profile 中有一行内容是
# Set prompt
export PROMPT_COMMAND='PS1=$($CONDA_PREFIX/bin/python $SCRIPTS_DIR/make_prompt.py)'
重点是,对我来说,在 python 中自定义提示符比在 bash 中使用难以维护的令人讨厌的行要容易得多。
python 脚本的结尾是这样的
# Print prompt
final_prompt = f"{user_host}{conda_env}{cwd}{git_branch}$ "
print(final_prompt, end="")
您在 f 字符串中看到的每个变量都是使用
colored
包的 termcolor
文本。提示按照我想要的方式显示,只是没有颜色。
但是,当我用 python 手动运行脚本时,输出结果是彩色的。
不太确定为什么提示的设置方式与我看到脚本的手动输出的方式不同。大家有什么想法吗?
您永远不会设置提示。设置提示的变量是
PS1
,而不是 PROMPT_COMMAND
。来自 bash 手册页:
提示命令
如果设置了此变量,并且是一个数组,则在发出每个主提示之前,将每个设置元素的值作为命令执行。如果已设置但不是数组变量,则其值将用作要执行的命令。
PS1
此参数的值被扩展(请参阅下面的 PROMPTING)并用作主要提示字符串。