如何将DATE命令与外部变量一起使用?

时间:2014-11-27 08:06:10

标签: bash time

我正在研究时间转换脚本。它应该做这样的事情:

echo $(( ($(date -d '00:10:2.00' +%s) - $(date -d 0 +%s) ) ))

这条线工作正常,给我结果

602

但我希望将日期字符串(00:10:2.00)的第一部分放在a)命令行参数下,以便可以从$1读取,如:

echo $(( ($(date -d '$1' +%s) - $(date -d 0 +%s) ) ))

OR作为变量:

echo $(( ($(date -d '$myvariable' +%s) - $(date -d 0 +%s) ) ))

当我尝试这个时:

foo="00:10:2.00"
echo $foo
echo $(( ($(date -d '$foo' +%s) - $(date -d 0 +%s) ) ))

我得到的只是:

00:10:2.00
date: invalid date `$foo'
-1417042800

所以它正确地回应但它不能使用时间命令...

1 个答案:

答案 0 :(得分:4)

变量在双引号内扩展,它们不会在单引号内扩展。所以使用

date -d "$1" +%s