添加日期变量

时间:2012-12-04 01:37:57

标签: shell

我想将下面的代码添加到我的脚本中,但是虽然total_time正确显示,但它没有显示CurrentTime值。在此,我想将纪元时间更改为当前系统时间,然后再添加20分钟。

CurrentTime=`date -d @$2`
echo "CurrentTime : $CurrentTime " >> ${LOGFILE}
Total_time=`"$CurrentTime" -d "+20 min"`

我该怎么做?

2 个答案:

答案 0 :(得分:0)

像这样更改您的总时间分配:

Total_time=`date -d "$CurrentTime +20 mins"`

答案 1 :(得分:0)

这不起作用的原因是,当您尝试将值分配给$Total_time时,您的$CurrentTime变量已设置为时间。它不再是一个命令,它是一个字符串,是一个命令的结果。

每次要计算新日期时,都需要重新调用`date`命令。这就是古鲁的回答为你提供的,尽管他没有解释原因。

如果您需要的是制作应用修饰符的“基础”日期,您仍然可以执行此操作,但我建议使用略有不同的表示法:

#!/bin/bash

start=$(date '+%s')

# do stuff
sleep 20

duration=$((`date '+%s'` - $start))

然后,您可以使用$duration作为其他计算的简单基础, AND 可以将其与相对日期一起使用:

printf "[%s] Start of job\n" "$(date -d @$start '+%Y-%m-%d %T')"
...
printf "[%s] End of job\n" "$(date -d @"$((start + duration))" '+%Y-%m-%d %T')"

以比date默认格式更标准的格式格式化日志文件可能更好。