我对简单的减法有疑问,但我不明白出了什么问题。
我的代码:
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)