2014-01-21 132 views
2

我有一个bash脚本,它削减了一些时间戳,下入形式SS.sss并将其存储在一个变量:减去两个变量

s1=$(echo $t1 | cut -c7-) 
s2=$(echo $t2 | cut -c7-) 

我想减去$s1$s2(并存储为$s3),但我无法得到expr的工作 - 是否有另一种选择?

+2

's1'和's2'看起来像什么? – devnull

+0

检查这也http://stackoverflow.com/questions/10429943/script-calculator-division –

+0

's1'和's2'从时间戳形式'SS.sss',所以例如24.260。 –

回答

8

你可以做最bash的计算是这样的:

s3="$((s2 - s1))" 

那些仅限于基本的操作对整数,如果我没有记错,所以像

s3="$(echo "$s2 - $s1" | bc)" 

可能会更好。

+1

'$((...))'是POSIX标准的一部分,但不支持浮点运算。 – chepner

+0

我接受这个答案作为我接受的答案,因为这个答案在我的系统上工作,而另一个没有。 –

3

expr只处理整数算术。您可以使用bc

s3=$(echo "$s1 - $s2" | bc) 
+0

出于某种原因,此版本不适用于我的系统 - 但感谢您的帮助! –

+0

它应该是'$(...)',而不是'$((...))'。 – choroba

+0

哎呀,感谢编辑devnull。我在大脑上有算术表达式。 – chepner