12

我正在尝试使用该date命令以格式输出今天的日期%d.%m.%y-%H:%M:%S。显然我只是这样做:

date +%d.%m.%y-%H:%M:%S

这在 bash 中运行良好,我得到了我期望的输出,但是当我在 zsh 中执行此操作时,我得到了我期望的以 '7m' 为前缀的输出,例如

7m07.09.12-16:49:37

代替

07.09.12-16:49:37

我也从我的终端收到警报。这是由%Sfor seconds 引起的,因为当我从命令末尾删除它时,我没有得到“7m”(但显然我错过了日期结束后的秒数)。

谁能解释为什么会这样?

编辑:额外信息:我在 OS X 10.8 上并安装了 zsh 4.3.11,oh-my-zsh

4

3 回答 3

16

一种解决方法是将代码包装在echo $(...). 它产生正确的输出,对我来说是可以接受的。您的原始命令如下所示:

echo $(date +%d.%m.%y-%H:%M:%S)
于 2013-08-31T12:28:09.770 回答
3

我有同样的问题,可以通过注释掉 .oh-my-zsh/lib/termsupport.zsh 的第 12 行来解决它,如https://github.com/robbyrussell/oh-my-zsh/issues/521所建议的那样

于 2012-10-23T14:15:59.557 回答
0

我确定您已经在某处复制了 CTRL 字符。7m 是复位控制码。编辑时查找 ^[[7m。

如果您只是想要时间,那么 ZSH 有一个不错的 %*

如果您想要日期和时间,请尝试 RPS1='%W %*'

如果你喜欢它,那就把它放在 PS1 或任何你喜欢的地方。

于 2019-01-03T06:26:38.847 回答