命令提示符特殊字符

命令提示符特殊字符

设置主命令提示符(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稍后会扩展为您的用户名 - 不是在分配变量时,而是每次显示提示时。

相关内容