爲報告的錯誤時,變量是空(或空)顯示:
$ unset var3 var4; var5=$(($var4-$var3))
bash: -: syntax error: operand expected (error token is "-")
可能發生的,因爲給BC值是不正確的。這很可能是因爲BC需要UPPERcase值。它需要BFCA3000
,而不是bfca3000
。這是很容易固定在bash,只需使用^^
擴展:
var3=bfca3000; var3=`echo "ibase=16; ${var1^^}" | bc`
這將劇本改成這樣:
#!/bin/bash
var1="bfca3000"
var2="efca3250"
var3="$(echo "ibase=16; ${var1^^}" | bc)"
var4="$(echo "ibase=16; ${var2^^}" | bc)"
var5="$(($var4-$var3))"
echo "Diference $var5"
但有沒有必要使用BC [1],如bash的可能執行轉換和減法直接:
#!/bin/bash
var1="bfca3000"
var2="efca3250"
var5="$((16#$var2 - 16#$var1))"
echo "Diference $var5"
[1] 注:我假設值可在64位數學表示,作爲差算出我在你的原始劇本中打擊。如果編譯爲64位,則Bash限制爲小於((2 ** 63)-1)的整數。這與bc唯一的區別是沒有這個限制。
您是否鍵入「dis」並期望有人花時間寫答案? –
你錯過了'''最後,並有'.'來代替 –
這是一個編輯錯誤。 – VenkateshJN