以别名形式输出 unix 时间

以别名形式输出 unix 时间

我正在经营一家网上商店,我可以在里面放置一个变量 versiontag 来包含 JS 和 CSS 作为缓存破坏器。即。

styles.css?v2018_01

其中2018_01是版本标签。现在我还有一个 CLI 工具,可以快速设置,如下所示

mr config:set 'design/head/meta_version_tag' [insert_my_var_here]

我想要做的是创建一个 Bash 别名,每次运行时将变量设置为 Unix 时间戳。我知道我可以使用 获取 Unix 时间戳date +%s

因此我会创建一个这样的别名:

mr config:set 'design/head/meta_version_tag' date +%s

但是 CLI 将其解释date +%s为字符串,而不是先获取其输出。

所以我需要的是这样的输出:

mr config:set 'design/head/meta_version_tag' 1519747390

所以我的问题是;如何获取别名中的 unix 日期戳的输出?

答案1

只要你使用,bash你就可以命令替换

mr config:set 'design/head/meta_version_tag' $(date +%s)

这将首先date +%s在子 shell 中运行并将输出作为字符串包含,请参阅man bash扩展/命令替换:

command Bash 通过执行命令替换并将其替换为命令的标准输出来执行扩展 ,同时删除所有尾随的换行符。

在这种情况下,不需要引用命令替换(就像通常做的那样),因为输出date +%s没有任何空格。

答案2

怎么样

mr config:set 'design/head/meta_version_tag' $(date +%s)

或者,

alias dothething='mr config:set "design/head/meta_version_tag" $(date +%s)'

相关内容