2013-07-24 127 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

相關問題