我正在经营一家网上商店,我可以在里面放置一个变量 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)'