我想将下面的代码添加到我的脚本中,但是虽然total_time
正确显示,但它没有显示CurrentTime
值。在此,我想将纪元时间更改为当前系统时间,然后再添加20分钟。
CurrentTime=`date -d @$2`
echo "CurrentTime : $CurrentTime " >> ${LOGFILE}
Total_time=`"$CurrentTime" -d "+20 min"`
我该怎么做?
答案 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
默认格式更标准的格式格式化日志文件可能更好。