我需要使用shell脚本减去以下两次
var1=2019-11-14-03.00.02.000000
var2=2019-11-14-03.00.50.000000
输出应为00-00-00-00.00.48.00000
我需要使用shell脚本减去以下两次
var1=2019-11-14-03.00.02.000000
var2=2019-11-14-03.00.50.000000
输出应为00-00-00-00.00.48.00000
首先使用以下命令将var1
和var2
转换为以秒为单位的日期(自纪元以来):
sec1=$(date --date $var1 +%s)
...
使用bash数学运算符计算差异
delta=$((sec1 - sec2))
最后将其转换回可读格式
date --date @1502938801"$delta"
,
如我的评论中所述,headers
和$http({
Method: 'GET',url: 'http://localhost:50515/api/employees',headers: {
'api-key': 'ba741c13417b7775524dbf0f417cefc4'
},}).then(function (result) {
$scope.Getemployees = result.data;
});
是无效的日期格式,无法通过var1
选项传递给GNU var2
。您必须先将
date
,-d
替换为'-'
'.'
恢复与时间间隔的毫秒数':'
,并用重新格式化的日期和时间分隔空格。Bash提供了参数替换,可以非常轻松地处理每个参数。
在计算了两个时期以来的时间并计算出差后,您必须手动计算年,月,日,小时,分钟,秒和毫秒的差,以便输出差,并且必须格式化输出使用'.'
和整数转换说明符,同时使用适当的 field-width 和前导零修饰符。
将其完全放在一起(并使用date -d"$dt $tm" +%s
和printf
近似),您可以这样做:
365-day/year
(注意:您可以进一步调整月份和年份/ le年的计算-留给您)
使用/输出示例
30-day/mo
仔细检查一下,如果还有其他问题,请告诉我。