Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 为什么减法返回符号_Bash_Shell - Fatal编程技术网

Bash 为什么减法返回符号

Bash 为什么减法返回符号,bash,shell,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 - 我的问题是:为什么我得到了一个符号返回 您没有为变量赋值等号周围不能有空格。 而

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

我的代码:

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 -

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

您没有为变量赋值等号周围不能有空格。

而且,你做错了

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

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

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
临时设置为nothing,并运行
date
命令。因此,当您使用它们时,
start
end
仍然是空的,这就是为什么您只得到
-
,因为
expr-
只给您
-

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

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

感谢您的解释。您的开始时间和结束时间显示在屏幕上,而您没有打印它们,这一事实应该提醒您,作业中出现了一些错误。