我对简单的减法有疑问,但我不明白出了什么问题。
我的代码:
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 -
我的问题是:为什么我得到一个 - 符号返回?
命令:
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)
您没有分配给变量。等号周围不能有空格。
另外,你做错了。
start=$(date +%s%N | cut -b1-13)