Bash 减去两个变量

Bash 减去两个变量,bash,shell,unix,Bash,Shell,Unix,我有一个bash脚本,它将一些时间戳缩减为SS.sss格式,并将其存储在一个变量中: s1=$(echo $t1 | cut -c7-) s2=$(echo $t2 | cut -c7-) 我想从$s1中减去$s2(并存储为$s3),但我无法使expr工作-还有其他选项吗?expr仅处理整数算术运算。您可以使用bc: s3=$(echo "$s1 - $s2" | bc) 您可以执行大多数bash计算,如下所示: s3="$((s2 - s1))" 如果我没记错的话,这些仅限于对整数的基本

我有一个bash脚本,它将一些时间戳缩减为
SS.sss
格式,并将其存储在一个变量中:

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

我想从
$s1
中减去
$s2
(并存储为
$s3
),但我无法使
expr
工作-还有其他选项吗?

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

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

您可以执行大多数bash计算,如下所示:

s3="$((s2 - s1))"
如果我没记错的话,这些仅限于对整数的基本运算

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

可能更好。

s1和s2看起来像什么?也检查一下
s1
s2
的格式是
SS。sss
来自时间戳,例如24.260。
$(…)
是POSIX标准的一部分,但不支持浮点运算。我已接受此答案作为我的接受答案,因为此答案适用于我的系统,而另一个答案则不适用。由于某些原因,此版本将不适用于我的系统-但感谢您的帮助!它应该是
$(…)
,而不是
$(…)
.Oops,谢谢您的编辑开发。我脑子里有算术表达式。