设置主命令提示符(PS1)的值时,有以下两种情况
export PS1="\u"
export PS1="\\u"
给出相同的结果:
root
作为命令提示符字符串。如果两个结果相同,\u
和有何不同?输出不应该只是因为表示反斜杠本身吗?\\u
\\u
\u
\\
答案1
在 bash 的双引号字符串中,如果后面的字符不需要转义(仅"
`
$
\
必须转义),则保留反斜杠。
- 例如,
foo="\$bar"
将导致$bar
因为$
需要转义。 - 然而,
foo="\%bar"
会导致\%bar
因为%
才不是需要逃脱。
因此PS1="\u"
和都PS1="\\u"
将导致 $PS1 具有值\u
。
$PS1 里面的代码\u
稍后会扩展为您的用户名 - 不是在分配变量时,而是每次显示提示时。