zsh:未找到 strftime 命令
我目前正在学习 zsh,现在我想使用 strftime
但我得到:
zsh:找不到命令:strftime
我认为我做错了什么,因为我看到人们一直在他们的点文件中使用该函数。
I am currently learning the zsh and now I wanted to use strftime
but i get:
zsh: command not found: strftime
I think I'm doin' something wrong, since I see people using that function all the time in their dotfiles.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
strftime
是在名为datetime
的zsh
模块中定义的。zmodload
命令从$module_path
中以冒号分隔的目录列表加载模块。在我的系统上:
strftime
is defined in azsh
module calleddatetime
. Thezmodload
command loads modules from a colon-separated list of directories in$module_path
.On my system:
对于通过 Google 到达这里的任何人来说,现在有一种不需要
zmodload
即可完成此操作的方法。 (我用它检测 .zshrc 由于资源争用而缓慢,所以我不希望它添加新的文件系统请求。)其要点如下:
VAR
的情况下替换${VAR:-DEFAULT}
参数。(%)
放在VAR
之前可以扩展PS1
及其同类中使用的替换标记。 更多信息,请参阅man zshmisc
中的“提示序列扩展”。)%F{green}
等内容。有关 提示扩展字符串,%D{...}
调用strftime(3)
。我发现
%D{%s}
特别有用,因为%s
检索“自纪元以来的秒数”时间戳,然后您可以对其进行算术。(请注意,虽然
%s
在 Linux、AIX、Illumos、MINIX、OSX 和所有 BSD 系列系统上受支持,但它不是 POSIX 的一部分,也没有在适用于 Solaris、HP-UX、UnixWare、OpenServer 或 Cygwin 和 MinGW 所依赖的 Windows 库的在线strftime
文档。)For anyone who arrives here via Google, there's now a way to do this that doesn't require a
zmodload
. (I use it to detect when .zshrc is slow due to resource contention, so I don't want it to add new filesystem requests.)The gist of it is as follows:
${VAR:-DEFAULT}
parameter substitution without aVAR
.(%)
beforeVAR
enables expansion of the substitution tokens used inPS1
and friends. (This is a very powerful feature because it also grants access to things like%F{green}
. See "expansion of prompt sequences" inman zshmisc
for more.)%D{...}
invokesstrftime(3)
.I find
%D{%s}
particularly useful because%s
retrieves the "seconds since the epoch" timestamp, which you can then do arithmetic on.(Just be aware that, while
%s
is supported on Linux, AIX, Illumos, MINIX, OSX, and all BSD-family systems, it's not part of POSIX and isn't listed as supported in the onlinestrftime
documentation for Solaris, HP-UX, UnixWare, OpenServer, or the Windows libraries Cygwin and MinGW depend on.)strftime
是一个 C 函数,我相信date
在命令行上具有所有相同的功能。有关更多信息,请参阅
man date
。使用
--date=STRING
选项指定要格式化的日期,而不是获取当前时间。strftime
is a C function, I believedate
has all the same functionality on the command line.See
man date
for more.One uses the
--date=STRING
option to specify a date to format instead of getting current time.