在 OS X (10.6) bash 中使用 unix date 会导致“非法时间格式”错误

dot*_*ode 2 unix macos bash date

我无法使用日期(在 OS X 10.6 下,使用 bash)而不会出现以下“非法时间格式”错误:

$ date "+DATE: %Y-%m-%d%nTIME: %H:%M:%S"
DATE: 2012-03-29
TIME: 11:39:30
date: illegal time format
usage: date [-jnu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ... 
            [-f fmt date | [[[mm]dd]HH]MM[[cc]yy][.ss]] [+format]
Run Code Online (Sandbox Code Playgroud)

我直接从手册页拿那个例子。我究竟做错了什么?

dot*_*ode 5

所以 - 这是愚蠢的例证。对 Stack Overflow 上的愚蠢结果不感兴趣?停止阅读。

我试图为我的提示添加时间。我不想依赖于 \t,而是想使用日期(我有一个跨 shell 使用的提示文件)。充满信心(谁不会 - 这只是约会,对吧?我不是在尝试配置 sendmail 或其他任何东西),我将它添加到我的 PS1 中:

date "%H:%M" # << the 1st stupid thing I did
Run Code Online (Sandbox Code Playgroud)

...然后切换到我的提示。此时我突然想到“我确定有一个 %H:%M 的简写”,并调用了联机帮助页。

然后我重新加载了我的个人资料(没有注意到我得到的错误 - 我做的第二件愚蠢的事情)并输入

date "+%R"
Run Code Online (Sandbox Code Playgroud)

...显然得到了日期的输出和错误。提示我半小时将脸压在桌子上并寻求帮助,而答案就在我面前 - 日期错误的输出。我在大约 20 秒的时间内完全忘记了我在 .bash_profile 中添加了任何内容。

乞丐信仰。

我的教训是:

  1. 不要分心
  2. 按照顺序
  3. 停止摆弄你该死的 PS1 并为改变做一些真正的工作