为什么减法返回 - 符号

时间:2013-07-24 08:06:16

标签: bash shell

我有一个简单的减法问题,但我不明白什么是错的。

我的代码:

start= date +%s%N | cut -b1-13
#Treatment...
end= date +%s%N | cut -b1-13

delta=`expr $end - $start`
echo "delta $delta"

我的控制台显示:

  1374652348283
  ...
  1374652349207
  delta -

我的问题是:为什么我会得到一个 - 符号返回?

2 个答案:

答案 0 :(得分:10)

命令:

a= b

(注意空格)将a设置为空字符串,同时运行命令b。这是一种为单个命令临时设置环境变量的方法,例如:

PATH=/path/to/somwhere gcc whatever  # Here, PATH has the modified value.
echo $PATH                           # Here, PATH has its original value.

所以命令行:

start= date +%s%N | cut -b1-13

暂时将start设置为空,并运行date命令。因此,当您使用startend时,-expr -仍为空,这就是为什么您只获得-,因为date只是为您提供start=$(date +%s%N | cut -b1-13) 。< / p>

如果要将{{1}}命令的结果输入变量,请使用:

{{1}}

答案 1 :(得分:5)

您没有分配变量。 您的等号周围不能有空格。

另外,你做错了。

start=$(date +%s%N | cut -b1-13)