2014-01-21 193 views
2

我有一個bash腳本,它削減了一些時間戳,下入形式SS.sss並將其存儲在一個變量:減去兩個變量

s1=$(echo $t1 | cut -c7-) 
s2=$(echo $t2 | cut -c7-) 

我想減去$s1$s2(並存儲爲$s3),但我無法得到expr的工作 - 是否有另一種選擇?

+2

's1'和's2'看起來像什麼? – devnull

+0

檢查這也http://stackoverflow.com/questions/10429943/script-calculator-division –

+0

's1'和's2'從時間戳形式'SS.sss',所以例如24.260。 –

回答

8

你可以做最bash的計算是這樣的:

s3="$((s2 - s1))" 

那些僅限於基本的操作對整數,如果我沒有記錯,所以像

s3="$(echo "$s2 - $s1" | bc)" 

可能會更好。

+1

'$((...))'是POSIX標準的一部分,但不支持浮點運算。 – chepner

+0

我接受這個答案作爲我接受的答案,因爲這個答案在我的系統上工作,而另一個沒有。 –

3

expr只處理整數算術。您可以使用bc

s3=$(echo "$s1 - $s2" | bc) 
+0

出於某種原因,此版本不適用於我的系統 - 但感謝您的幫助! –

+0

它應該是'$(...)',而不是'$((...))'。 – choroba

+0

哎呀,感謝編輯devnull。我在大腦上有算術表達式。 – chepner