在Bash的PS1提示符中如何显示短日期

41

你可以在你的PS1配置中使用\d来显示长日期,例如星期二 5月18日,但如何将其显示为例如18.05.2012的格式呢?

6个回答

75

尝试使用\D{%d.%m.%Y}。您可以使用任何由strftime(3)支持的时间格式。


5
这应该被接受,因为它使用了shell替换而不是在子shell中使用外部命令。 - mcmlxxxvi

22
不必每次告诉shell执行日期命令,你可以使用内置的格式。
\D{%F %T}  

为您提供日期和时间,格式为:YYYY-MM-DD hh:mm:ss

20

使用\D{format},其中formatstrftime格式代码。例如:

$ export PS1='\D{%d.%m.%Y}$ '
08.02.2012$

我的问题得到了很好的回答。但是,你如何使它永久生效? - ECII
根据您的平台,您可以将这些自定义内容放在~/.bash_profile中,在启动新的交互式shell时读取。 - martineg

19
PS1="\$(date +%d.%m.%Y) > "
export PS1

1
最好按照下面FatalError的答案使用shell替换。 - jzacharuk

5

您可以尝试以下代码来显示时间:

$ PS1="\n\t \u@\h:\w# "

08:18:57 user@localhost:/home/user#

0

我不确定如何将其特别应用于PS1(也许有人可以编辑此问题,以替换此部分为其他问题中最有效的部分)。

但是,您可以根据当前语言环境获取短日期格式:

date +%x

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接