繁体   English   中英

如何在bash提示符中插入环境变量

[英]How to insert an environment variable inside the bash prompt

我可以在bash提示符中设置一个环境变量,如下所示:

export PS1="[\u@\H/$FOO \W]\$ "

更改环境变量时,提示不会更改: $FOO因为未解释$FOO变量。

我可以通过执行以下操作来解决它,再次导出PS1。 但我希望能够在一条线上完成:

[user@server ]$ echo $FOO
foo
[user@server ]$ export PS1="[$FOO]$ "
[foo]$ export FOO=bla
[bla]$ 

这可以在一行中完成吗?

你需要添加反斜杠来评估它不是在FOO分配时,而是在评估PS1时,所以:

export PS1="[\$FOO]$ "

代替:

export PS1="[$FOO]$ "

请注意$FOO之前的\\

尝试设置PROMPT_COMMAND变量:

prompt() {
    PS1="[$FOO]$ "
}

PROMPT_COMMAND=prompt

来自http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x264.html

Bash提供了一个名为PROMPT_COMMAND的环境变量。 在Bash显示提示之前,此变量的内容作为常规Bash命令执行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM