我正在尝试将 PS1 提示设置为
/usr/local/src mario
所以我在 .bash_profile 中使用了以下代码:
export PS1=" \w \u\[$(tput sgr0)\]"
我最终得到:
\w \u\[$(tput sgr0)\]
有想法吗?
我可以使用字符串连接来获得我想要的东西,但这似乎很奇怪我需要这样做。
答案1
你的 shell 可能不是bash
。将其更改为chsh
.
另外,部分值存在问题$PS1
:
PS1=" \w \u\[$(tput sgr0)\]"
将会$(...)
在您设置 时进行评估PS1
,但仅此一次。如果您想tput sgr0
每次显示提示时都执行,请使用单引号:
PS1='\w \u\[$(tput sgr0)\] \$ '
(我还将初始空格从值的开头移动到结尾,并添加了\$
这将使提示和命令行更具可读性。
您还可以设置
PS1="\w \u \$ "
然后设置
PROMPT_COMMAND="tput sgr0"
在显示每个提示之前执行tput sgr0
(我不知道这样做是否有意义,因为我不太知道它的作用,但它的设施就在那里)。
请注意,既不需要导出PS1
也不PROMPT_COMMAND
需要导出,因为只有为当前 shell 会话设置它们才有意义。