2007年1月21日

Bash提示符-PS1

bash 有两级用户提示符。第一级是你经常看到的 bash 在等待命令输入时的提示符。缺省的一级提示符是字符$(如果是超级用户,则是#号)。
你可以通过改变bash 的PS1变量的值来改变你的缺省提示符,例如:
PS1="Please enter a command"
把bash shell 的提示符该为指定的字符串。

当bash 期待输入更多的信息以完成命令时显示第二级提示符。缺省的第二级提示符是 >。 果你要改变第二级提示符,可以通过设置PS2变量的值来实现:
PS2="I need more information"
另外你还可以用特殊的字符来定义你的提示符,下面的列表列出了最常用的特殊字符。

提示符特殊字符代码
字符 含义
\! 显示该命令的历史记录编号。
\# 显示当前命令的命令编号。

\$ 显示$符作为提示符,如果用户是root的话,则显示#号。
\\ 显示反斜杠。

\d 显示当前日期。

\h 显示主机名。

\n 打印新行。
\nnn 显示nnn的八进制值。

\s 显示当前运行的shell的名字。
\t 显示当前时间。
\u 显示当前用户的用户名。
\W 显示当前工作目录的名字。
\w 显示当前工作目录的路径。

这些特殊字符能组合成很多种有用的提示符方案(也可以组合为很奇异的方案),例如把 PS1 设为:
PS1="\t"
这导致提示符显示当前的时间,就象下面的显示一样(提示符后面将不会有空格):
02:16:15

而下面的设置:
PS1=\t
将导致提示符变成下面的样子:
t
这显示了设置中引号的重要性,下面的提示符串:
PS1="\t\\ "
会使提示符看起来象这个样子:
02:16:30\
这种情况下,提示符后面会有一个空格,因为引号里有一个空格。

没有评论: