我正在研究时间转换脚本。它应该做这样的事情:
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
所以它正确地回应但它不能使用时间命令...
答案 0 :(得分:4)
变量在双引号内扩展,它们不会在单引号内扩展。所以使用
date -d "$1" +%s