提示符(PROMPTING)

在交互执行时, bash 在准备好读入一条命令时显示主提示符 PS1, 在需要更多的输入来完成一条命令时显示 PS2。 Bash 允许通过插入一些反斜杠转义的特殊字符来定制这些提示字符串,这些字符被如下解释:

\a

一个 ASCII 响铃字符 (07)

\d

日期,格式是 "星期 月份 日" (例如,"Tue May 26")

\D{format}

format 被传递给 strftime(3),结果被插入到提示字符串中; 空的 format 将使用语言环境特定的时间格式。花括号是必需的

\e

一个 ASCII 转义字符 (033)

\h

主机名,第一个 `.' 之前的部分

\H

主机名

\j

shell 当前管理的作业数量

\l

shell 的终端设备名的基本部分

\n

新行符

\r

回车

\s

shell 的名称, $0 的基本部分 (最后一个斜杠后面的部分)

\t

当前时间,采用 24小时制的 HH:MM:SS 格式

\T

当前时间,采用 12小时制的 HH:MM:SS 格式

\@

当前时间,采用 12小时制上午/下午 (am/pm) 格式

\A

当前时间,采用 24小时制上午/下午格式

\u

当前用户的用户名 the username of the current user

\v

bash 的版本 (例如,2.00)

\V

bash 的发行编号,版本号加补丁级别 (例如,2.00.0)

\w

当前工作目录

\W

当前工作目录的基本部分

!

此命令的历史编号

#

此命令的命令编号

$

如果有效 UID 是 0,就是 #, 其他情况下是 $

\nnn

对应八进制数 nnn 的字符

\

一个反斜杠

[

一个不可打印字符序列的开始,可以用于在提示符中嵌入终端控制序列

]

一个不可打印字符序列的结束

命令编号和历史编号通常是不同的:历史编号是命令在历史列表中的位置,可能 包含从历史文件中恢复的命令 (参见下面的 HISTORY 历史 章节),而命令编号是当前 shell 会话中执行的命令序列中,命令的位置。 字符串被解码之后,它将进行扩展,要经过 parameter expansion, command substitution, arithmetic expansion 和 quote removal, 最后要经过 shell 选项 promptvars 处理 (参见下面的 shell 内建命令(SHELL BUILTIN COMMANDS) 章节中,对命令 shopt 的描述)。