डेनिस के जवाब पर बाद:
हालांकि उनके जबाब दशमलव अंक के लिए सही है, तो पार्टी फेंकता (standard_in) 1: चल बिन्दु गणित के साथ सिंटेक्स त्रुटि।
result1=12
result2=1.27554e-05
if (($(echo "$result1 > $result2" | bc -l))); then
echo "r1 > r2"
else
echo "r1 < r2"
fi
यह हालांकि 0.
(standard_in) 1 के बाहर निकलने के कोड के साथ एक चेतावनी के साथ गलत उत्पादन देता है: सिंटैक्स त्रुटि
r1 < r2
जबकि वहाँ है कोई इस के लिए स्पष्ट समाधान (चर्चा thread 1 और thread 2), मैंनेका उपयोग करके फ़्लोटिंग पॉइंट परिणामों को गोल करके निम्नलिखित आंशिक फ़िक्स का उपयोग कियाके बाद bc
कमांड के रूप में डेनिस के उत्तर और this thread
वांछित दशमलव स्थान पर गोल करें: निम्नलिखित दशमलव स्थान पर गोल करने के साथ टीबी में पुनरावर्ती निर्देशिका स्थान प्राप्त होगा।
result2=$(du -s "/home/foo/videos" | tail -n1 | awk '{$1=$1/(1024^3); printf "%.2f", $1;}')
फिर आप ऊपर दिए या following thread में के रूप में [[ ]]
बाड़े का उपयोग कर के रूप में बैश गणित का उपयोग कर सकते हैं।
if (($(echo "$result1 > $result2" | bc -l))); then
echo "r1 > r2"
else
echo "r1 < r2"
fi
या -eq
ऑपरेटर का उपयोग जहां 1 का bc
उत्पादन सच और 0 है गलत है
if [[ $(bc <<< "$result1 < $result2") -eq 1 ]]; then
echo "r1 < r2"
else
echo "r1 > r2"
fi
त्रुटियाँ क्या हैं? गलत वर्तनी एक चर नाम। – ormaaj
वास्तव में त्रुटियां कुछ अन्य मुद्दों के कारण हैं। यह ठीक काम करता है। –
'दशमलव मान' से आपका क्या मतलब है? क्या आपका मतलब आधार 10 में पूर्णांक है, या क्या आपका मतलब स्ट्रिंग्स है जो गैर-पूर्णांक वास्तविक मानों का प्रतिनिधित्व करते हैं? –