बैश में अंकगणित

बैश स्क्रिप्ट में गणना कैसे जोड़ें

हालांकि बैश एक पटकथा भाषा है, लेकिन इसमें सामान्य उद्देश्य प्रोग्रामिंग भाषा की सभी क्षमताओं की काफी क्षमता है। इसमें अंकगणितीय कार्य शामिल हैं। अभिव्यक्ति के अंकगणितीय मूल्यांकन को विकसित करने के लिए आप कई वाक्यविन्यास विकल्प उपयोग कर सकते हैं। शायद सबसे पठनीय एक लेट कमांड है। उदाहरण के लिए

चलो "एम = 4 * 1024"

4 गुणा 1024 की गणना करेगा और परिणाम "एम" को आवंटित करेगा।

आप एक गूंज कथन जोड़कर परिणाम मुद्रित कर सकते हैं:

चलो "एम = 4 * 1024" echo $ एम

आप निम्न कोड दर्ज करके कमांड लाइन से इसका परीक्षण कर सकते हैं:

चलो "एम = 4 * 1024"; echo $ एम

आप बैश कमांड वाली फ़ाइल भी बना सकते हैं, इस स्थिति में आपको फ़ाइल के शीर्ष पर एक पंक्ति जोड़नी चाहिए जो कोड को निष्पादित करने वाले प्रोग्राम को निर्दिष्ट करता है। उदाहरण के लिए:

#! / bin / bash "m = 4 * 1024" echo $ m

मानते हुए कि बैश निष्पादन योग्य / बिन / बैश में स्थित है। आपको अपनी स्क्रिप्ट फ़ाइल की अनुमतियां भी सेट करने की आवश्यकता है ताकि यह निष्पादन योग्य हो। स्क्रिप्ट फ़ाइल नाम मानना ​​script1.sh है , आप आदेश के साथ फ़ाइल निष्पादन योग्य बनाने के लिए अनुमतियां सेट कर सकते हैं:

chmod 777 script1.sh

इसके बाद आप इसे कमांड के साथ निष्पादित कर सकते हैं:

./script1.sh

उपलब्ध अंकगणितीय परिचालन जावा और सी जैसे मानक प्रोग्रामिंग भाषाओं में समान हैं। गुणा के अलावा, ऊपर वर्णित अनुसार, आप अतिरिक्त उपयोग करते हैं:

चलो "एम = ए +7"

या घटाव:

चलो "एम = ए - 7"

या विभाजन:

चलो "एम = ए / 2"

या मॉड्यूलो (एक पूर्णांक विभाजन के बाद शेष):

चलो "एम = एक% 100"

जब एक ऑपरेशन को उसी वैरिएबल पर लागू किया जाता है जिसके परिणामस्वरूप असाइन किया जाता है तो आप मानक अंकगणित शॉर्टेंड असाइनमेंट ऑपरेटर का उपयोग कर सकते हैं, जिसे कंपाउंड असाइनमेंट ऑपरेटरों के रूप में भी जाना जाता है। उदाहरण के लिए, इसके अतिरिक्त, हमारे पास है:

चलो "एम + = 15"

जो "एम = एम +15" के बराबर है। घटाव के लिए हमारे पास है:

चलो "एम - = 3"

जो "एम = एम -3" के बराबर है। विभाजन के लिए हमारे पास है:

चलो "एम / = 5"

जो "एम = एम / 5" के बराबर है। और मॉड्यूलो के लिए, हमारे पास है:

चलो "एम% = 10"

जो "एम = एम% 10" के बराबर है।

इसके अतिरिक्त, आप वृद्धि और कमी ऑपरेटर का उपयोग कर सकते हैं:

चलो "एम ++"

"एम = एम + 1" के बराबर है। तथा

मुझे करने दो--"

"एम = एम -1" के बराबर है।

और फिर टर्नरी "प्रश्न चिह्न-कोलन" ऑपरेटर होता है, जो कि निर्दिष्ट शर्त सत्य या गलत है या नहीं, इस पर निर्भर करता है कि दो मानों में से एक लौटाता है। उदाहरण के लिए

चलो "के = (एम <9)? 0: 1"

इस असाइनमेंट कथन का दायां हाथ "0" का मूल्यांकन करता है यदि परिवर्तनीय "एम" 9 से कम है। अन्यथा, यह 1 का मूल्यांकन करता है। इसका मतलब है कि "एम" कम है "0" "0" कम है 9 से और "1" अन्यथा।

प्रश्न चिह्न-कॉलन ऑपरेटर का सामान्य रूप है:

शर्त ? मूल्य-अगर-सत्य: मूल्य-अगर-झूठा

बैश में फ़्लोटिंग प्वाइंट अंकगणित

चलो ऑपरेटर केवल पूर्णांक अंकगणितीय के लिए काम करता है। फ्लोटिंग पॉइंट अंकगणित के लिए आप उदाहरण के लिए जीएनयू बीसी कैलकुलेटर उदाहरण के लिए उपयोग कर सकते हैं:

गूंज "32.0 + 1.4" | बीसी

"पाइप" ऑपरेटर "|" बीसी कैलक्यूलेटर को अंकगणितीय अभिव्यक्ति "32.0 + 1.4" पास करती है, जो वास्तविक संख्या देता है। इको कमांड मानक आउटपुट को परिणाम प्रिंट करता है।

अंकगणित के लिए वैकल्पिक सिंटेक्स

बैकटिक्स (बैक सिंगल कोट्स) का प्रयोग इस उदाहरण में अंकगणितीय अभिव्यक्ति का मूल्यांकन करने के लिए किया जा सकता है:

echo 'expr $ m + 18`

यह वैरिएबल "एम" के मान में 18 जोड़ देगा और फिर परिणाम प्रिंट करेगा।

एक चर के लिए गणना मूल्य असाइन करने के लिए आप इसके चारों ओर रिक्त स्थान के बराबर चिह्न का उपयोग कर सकते हैं:

एम = `expr $ एम + 18`

अंकगणितीय अभिव्यक्तियों का मूल्यांकन करने का एक और तरीका डबल ब्रांडेसिस का उपयोग करना है। उदाहरण के लिए:

((एम * = 4))

यह परिवर्तनीय "एम" के मान चौगुनी करेगा।

अंकगणितीय मूल्यांकन के अलावा, बैश खोल अन्य प्रोग्रामिंग संरचनाएं प्रदान करता है, जैसे फॉर-लूप , जबकि-लूप , सशर्त , और फ़ंक्शंस और सबराउटिन