Bash 如何在PS1提示符中用0';s

Bash 如何在PS1提示符中用0';s,bash,Bash,我想创建一个bash提示符,该提示符以历史编号开头,并用零填充,因此它的长度始终至少为三个字符: 001 user@hostname:~ $ 我尝试填充特殊的PS1符号\带有printf: 函数填充的\u历史记录{ printf“%03d”\!“ } PS1=“$(填充的\u历史)\u@\h:\w\$” 但我得到了以下错误: -bash: printf: \!: invalid number 转义序列\必须嵌入分配给PS1的值中。您需要在值周围使用单引号,以防止过早扩展 PS1='$(pr

我想创建一个bash提示符,该提示符以历史编号开头,并用零填充,因此它的长度始终至少为三个字符:

001 user@hostname:~ $
我尝试填充特殊的
PS1
符号
\带有
printf

函数填充的\u历史记录{
printf“%03d”\!“
}
PS1=“$(填充的\u历史)\u@\h:\w\$”
但我得到了以下错误:

-bash: printf: \!: invalid number

转义序列
\必须嵌入分配给
PS1
的值中。您需要在值周围使用单引号,以防止过早扩展

PS1='$(printf "%03d" "\!") \u@\h:\w \$ '