我有一个简单的减法问题,但我不明白什么是错的。
我的代码:
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 :(得分: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
命令。因此,当您使用start
和end
时,-
和expr -
仍为空,这就是为什么您只获得-
,因为date
只是为您提供start=$(date +%s%N | cut -b1-13)
。< / p>
如果要将{{1}}命令的结果输入变量,请使用:
{{1}}
答案 1 :(得分:5)
您没有分配变量。 您的等号周围不能有空格。
另外,你做错了。
start=$(date +%s%N | cut -b1-13)