日期:2014-05-16  浏览次数:20721 次

请教关于date日期时间运算的问题

$ date
2012年 11月 13日 星期二 16:41:37 CST

$ echo $(($(/bin/date +%Y%m%d%H)-100))
2012111216
----
大家好:
我想请教一下以上脚本$(($(/bin/date +%Y%m%d%H)-100))部分-100得到的结果怎么会是2012111216?这里的-100是减100分钟还是100小时呢?
因为当前时间date是 2012-11-13 16:41:37,-100也不可能得到2012-11-12-16 的结果啊?

还有 $(($(/bin/date +%Y%m%d%H)-100)),这里为什么最前面还要加多一个$符号和两个((圆括号呢?这代表什么意思?$(($(/bin/date +%Y%m%d%H)-100))这部分是怎么执行的?
---
待复,感谢!
------最佳解决方案--------------------
$(ls)
$()获取shell命令的输出结果
$(())shell中算术计算

$(/bin/date +%Y%m%d%H)获取/bin/date +%Y%m%d%H的执行结果
$(($(/bin/date +%Y%m%d%H)-100)) $(/bin/date +%Y%m%d%H)-100的算术结果
------其他解决方案--------------------
这个是单纯的数字相减
2012-11-13 16:41:37得到的数字是2012111316
2012111316-100=2012111216
------其他解决方案--------------------
$(/bin/date +%Y%m%d%H) 输出的是一串数字, 给一个数字-100有什么问题吗?

2012111317 - 100 = 2012111217

仅此而已.
------其他解决方案--------------------
引用:
$(/bin/date +%Y%m%d%H) 输出的是一串数字, 给一个数字-100有什么问题吗?

2012111317 - 100 = 2012111217

仅此而已.


但是 $(($(/bin/date +%Y%m%d%H)-100)),这里为什么最前面还要加多一个$符号和两个((圆括号呢?这代表什么意思?$(($(/bin/date +%Y%m%d%H)-100))这部分是怎么执行的?