mbi*_*ras 14 command-line shell date quoting
$ date +'%s'
1491150773
Run Code Online (Sandbox Code Playgroud)
通过阅读date(1)
手册页(注意:我实际上使用的是 macOS),我找到了一个说明用法的示例:
Run Code Online (Sandbox Code Playgroud)Finally the command: date -j -f "%a %b %d %T %Z %Y" "`date`" "+%s" can be used to parse the output from date and express it in Epoch time.
从阅读示例来看,似乎+
可以放在单引号内:
$ date '+%s'
1491150781
Run Code Online (Sandbox Code Playgroud)
即使我能够成功打印当前的纪元时间,我也不明白它为什么起作用并且有一些问题:
date +'%s'
打印当前纪元时间?有没有更通用的例子来说明它在这个例子中的用法背后的模式?+
引号放在里面?我试过将命令放入explainshell,但它不是很有帮助:
cuo*_*glm 24
BSD 日期和 GNU 日期都具有以下形式:
date +FORMAT
Run Code Online (Sandbox Code Playgroud)
withFORMAT
是用于显示日期的输出格式字符串。因此,您将提供给date
的只是一个字符串,以+
.
在将字符串传递给 之前date
,该字符串由您的 shell 解释。So +%s
or +'%s'
or"+%s"
两者都是等价的,被所有 POSIX shell 按原样解释。
唯一的优点+'%s'
是您可以快速检测使用了哪种字符串格式,或者复制、解析它而无需担心+
.
此外,+'FORMAT'
当您使用某些特殊格式时,将帮助您,这些格式可以解释为您的外壳扩展。示例zsh
:
date +'(%s)'
Run Code Online (Sandbox Code Playgroud)
会在以下情况下工作:
date +(%s)
Run Code Online (Sandbox Code Playgroud)
不会。
归档时间: |
|
查看次数: |
29599 次 |
最近记录: |