2013-07-24 99 views
0

我有一个简单的减法问题,但我不明白什么是错的。为什么减法返回 - 符号

我的代码:

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 - 

我的问题是:为什么我有一个 - 符号回来了?

+0

这个事实,你的开始和结束时间都没有你打印他们应该提醒你一个事实,即一些显示在任务中没有正确执行。 – chepner

+0

没错...... – Corentin

回答

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) 
+0

谢谢你的解释。 – Corentin

5

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

此外,你做错了。

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

感谢您的回答。 – Corentin

相关问题