Linux:如何根据当前时间范围构建带有参数的单个命令

Linux:如何根据当前时间范围构建带有参数的单个命令

我想创建一个附加特定参数的命令仅有的当前时间位于午夜至凌晨 6 点之间。

伪代码示例:

mvn clean verify <#if isBetweenMidnightAnd6AM> -Dfindbugs.skip=false</#if> 

是否可以在单个命令行中构建它或者我需要一个 shell 脚本?

答案1

这里使用 shell 脚本几乎肯定更好。你可以用一行非常难看的代码来实现,如下所示:(注意:未经调试/测试)

mvn clean verify $( if [ ($(date +%H) -ge 0) && ($(date +%H) -le 6) ];then echo  "-Dfindbugs.skip=false";fi;)

无论如何,这个脚本看起来会容易得多。它看起来像这样:

if [ ($(date +%H) -ge 0) && ($(date +%H) -le 6) ]
then
  mvn clean verify -Dfindbugs.skip=false
else
  mvn clean verify $Your_other_opts
fi

此外,通过脚本您可以进行更好的调试和验证以确保其正常运行。

也就是说,这似乎是无法手动运行的事情,因此您可以非常简单地执行如下 cron 作业:

0 0-6 * * * mvn clean verify -Dfindbugs.skip=false

它将在 0 点(午夜)至 6 点(凌晨 6 点)之间运行命令。

相关内容