त्रुटि के रूप में रिपोर्ट प्रकट होता है जब चर अशक्त (या खाली) कर रहे हैं:
$ unset var3 var4; var5=$(($var4-$var3))
bash: -: syntax error: operand expected (error token is "-")
कि हो सकता है क्योंकि बीसी को दी मूल्य गलत था। यह अच्छी तरह से हो सकता है कि बीसी को UPPERcase मानों की आवश्यकता है। इसे BFCA3000
की आवश्यकता है, bfca3000
नहीं।
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"
लेकिन वहाँ बैश के रूप में ईसा पूर्व [1] उपयोग करने के लिए कोई जरूरत नहीं है, कर सकता है अनुवाद और सीधे घटाव करते हैं:
#!/bin/bash
var1="bfca3000"
var2="efca3250"
var5="$((16#$var2 - 16#$var1))"
echo "Diference $var5"
[1] नोट: मैं मान 64 बिट गणित में निरूपित किया जा सकता संभालने हूँ, के रूप में अंतर मैं गणना की गई थी आपकी मूल लिपि में n bash। 64 बिट्स में संकलित होने पर बैश ((2 ** 63) -1) से कम पूर्णांक तक सीमित है। यह बीसी के साथ एकमात्र अंतर होगा जिसमें ऐसी सीमा नहीं है।
स्रोत
2015-08-29 22:34:54
क्या आपने "डिस" टाइप किया था और उम्मीद है कि कोई जवाब लिखने में समय बिताने के लिए? –
आप अंत में ''' चूक गए हैं, और इसके बजाय –
को हटाने के लिए' .' है। इसकी एक संपादन गलती है। – VenkateshJN