Ber*_*rnd 24 bash prompt environment-variables
我可以在bash提示符中设置一个环境变量,如下所示:
export PS1="[\u@\H/$FOO \W]\$ "
Run Code Online (Sandbox Code Playgroud)
更改环境变量时,提示不会更改:$FOO因为$FOO不解释变量.
我可以通过执行以下操作来解决它,再次导出PS1.但我希望能够在一条线上完成:
[user@server ]$ echo $FOO
foo
[user@server ]$ export PS1="[$FOO]$ "
[foo]$ export FOO=bla
[bla]$
Run Code Online (Sandbox Code Playgroud)
这可以在一行中完成吗?
Mic*_*jer 36
你需要添加反斜杠来评估它不是在FOO分配时,而是在评估PS1时,所以:
export PS1="[\$FOO]$ "
Run Code Online (Sandbox Code Playgroud)
代替:
export PS1="[$FOO]$ "
Run Code Online (Sandbox Code Playgroud)
注意\之前$FOO.
Arn*_*anc 17
尝试设置PROMPT_COMMAND变量:
prompt() {
PS1="[$FOO]$ "
}
PROMPT_COMMAND=prompt
Run Code Online (Sandbox Code Playgroud)
来自http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x264.html:
Bash提供了一个名为PROMPT_COMMAND的环境变量.在Bash显示提示之前,此变量的内容作为常规Bash命令执行.