如何在 bash 提示符中插入环境变量
我可以在 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]$
这可以在一行中完成吗?
I can set an environment variable inside the bash prompt like this:
export PS1="[\u@\H/$FOO \W]\$ "
The prompt does not change when I change the environment variable: $FOO
because the $FOO
variable is not interpreted.
I can work around it by doing the following, exporting PS1 again. But I would like to be able to do it on one line:
[user@server ]$ echo $FOO
foo
[user@server ]$ export PS1="[$FOO]$ "
[foo]$ export FOO=bla
[bla]$
Can this be done in one line?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要添加反斜杠以使其不在 FOO 分配时而是在评估 PS1 时进行评估,因此请执行以下操作:
而不是:
注意
$FOO
之前的\
。you need to add backslash to get it evaluated not in the time of FOO assigment but during evaluating the PS1, so do:
instead of:
Note the
\
before the$FOO
.尝试设置 PROMPT_COMMAND 变量:
Try setting the PROMPT_COMMAND variable: