Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Bash प्रोग्रामिंग

शेल स्क्रिप्ट्स में जटिल गणित संचालन में महारत - भाग V

आप लोग शेल स्क्रिप्ट्स को समझने और उन्हें अपनी आवश्यकता के अनुसार धाराप्रवाह लिखने में सहज महसूस कर रहे होंगे। यह इस ट्यूटोरियल श्रृंखला की अंतिम पोस्ट है, जहां हम स्क्रिप्टिंग भाषा का उपयोग करके थोड़े जटिल गणितीय संचालन करेंगे। शेल स्क्रिप्टिंग श्रृंखला के अंतिम चार लेख जो कालानुक्रमिक रूप से हैं।

शेल स्क्रिप्ट्स में जटिल गणित संचालन में महारत - भाग V
  1. बेसिक लिनक्स शेल स्क्रिप्टिंग भाषा टिप्स समझें - भाग I
  2. लिनक्स न्यूबीज के लिए शेल प्रोग्रामिंग सीखने के लिए 5 शेल स्क्रिप्ट्स - भाग II
  3. लिनक्स BASH स्क्रिप्टिंग की दुनिया में नौकायन - भाग III
  4. लिनक्स शेल प्रोग्रामिंग का गणितीय पहलू - भाग IV

फाइबोनैचि श्रृंखला से शुरू करते हैं

संख्याओं का एक पैटर्न जहां प्रत्येक संख्या दो पूर्ववर्ती संख्याओं का योग होती है। श्रृंखला है 0, 1, 1, 2, 3, 5, 8... परिभाषा के अनुसार, फाइबोनैचि अनुक्रम में पहली दो संख्याएं 0 और 1 हैं।

स्क्रिप्ट 1: Fibonacci.sh
#!/bin/bash echo "How many numbers do you want of Fibonacci series ?" read total x=0 y=1 i=2 echo "Fibonacci Series up to $total terms :: " echo "$x" echo "$y" while [ $i -lt $total ] do i=`expr $i + 1 ` z=`expr $x + $y ` echo "$z" x=$y y=$z done
नमूना आउटपुट
[admin@wsxdn.com ~]# chmod 755 Fibonacci.sh [admin@wsxdn.com ~]# ./Fibonacci.sh How many numbers do you want of Fibonacci series ? 10 Fibonacci Series up to 10 terms :: 0 1 1 2 3 5 8 13 21 34

Download Fibonacci.sh

आप इस तथ्य से परिचित हैं कि कंप्यूटर केवल बाइनरी फॉर्मेट में समझता है, यानी '0' और '1' और हम में से अधिकांश ने दशमलव से बाइनरी के रूपांतरण को सीखने का आनंद लिया है। इस जटिल ऑपरेशन के लिए एक सरल स्क्रिप्ट लिखने के बारे में क्या ख्याल है।

स्क्रिप्ट 2: Decimal2Binary.sh
#!/bin/bash for ((i=32;i>=0;i--)); do r=$(( 2**$i)) Probablity+=( $r ) done [[ $# -eq 0 ]] &echo -en "Decimal\t\tBinary\n" for input_int in admin@wsxdn.com; do s=0 test ${#input_int} -gt 11 &printf "%-10s\t" "$input_int" for n in ${Probablity[@]}; do if [[ $input_int -lt ${n} ]]; then [[ $s = 1 ]] && printf "%d" 0 else printf "%d" 1 ; s=1 input_int=$(( $input_int - ${n} )) fi done echo -e done
नमूना आउटपुट
[admin@wsxdn.com ~]# chmod 755 Decimal2Binary.sh [admin@wsxdn.com ~]# ./Decimal2Binary.sh 1121 Decimal Binary 1121 10001100001

नोट: उपरोक्त स्क्रिप्ट रन टाइम पर इनपुट स्वीकार करती है, जो जाहिर तौर पर एक सहायता है।

Download Decimal2Binary.sh

अंतर्निहित 'bc' कमांड एक स्क्रिप्ट की सिंगल लाइन में दशमलव को बाइनरी में कन्वर्ट कर सकता है। अपने टर्मिनल पर चलाएं।

[admin@wsxdn.com ~]# echo "obase=2; NUM" | bc

'NUM' को उस संख्या से बदलें, जिसे आप दशमलव से बाइनरी में कन्वर्ट करना चाहते हैं। उदाहरण के लिए,

[admin@wsxdn.com ~]# echo "obase=2; 121" | bc 1111001

अब हम एक स्क्रिप्ट लिखेंगे जो उपरोक्त स्क्रिप्ट के ठीक विपरीत कार्य करती है, बाइनरी मान को दशमलव में कन्वर्ट करना।

स्क्रिप्ट 3: Binary2Decimal.sh
#!/bin/bash echo "Enter a number :" read Binary if [ $Binary -eq 0 ] then echo "Enter a valid number " else while [ $Binary -ne 0 ] do Bnumber=$Binary Decimal=0 power=1 while [ $Binary -ne 0 ] do rem=$(expr $Binary % 10 ) Decimal=$((Decimal+(rem*power))) power=$((power*2)) Binary=$(expr $Binary / 10) done echo " $Decimal" done fi
नमूना आउटपुट
[admin@wsxdn.com ~]# chmod 755 Binary2Decimal.sh [admin@wsxdn.com ~]# ./Binary2Decimal.sh Enter a number : 11 3

नोट: उपरोक्त फ़ंक्शन को टर्मिनल में 'bc' कमांड का उपयोग करके निष्पादित किया जा सकता है।

[admin@wsxdn.com ~]# echo "ibase=2; BINARY" | bc

'BINARY' को बाइनरी संख्या से बदलें, जैसे,

[admin@wsxdn.com ~]# echo "ibase=2; 11010101" | bc 213

Download Binary2Decimal.sh

इसी तरह आप ऑक्टल, हेक्साडेसिमल से दशमलव और इसके विपरीत रूपांतरण के लिए स्वयं स्क्रिप्ट लिख सकते हैं। उपरोक्त परिणाम को टर्मिनल में 'bc' कमांड का उपयोग करके प्राप्त करना।

दशमलव से ऑक्टल
[admin@wsxdn.com ~]# echo "obase=8; Decimal" | bc
दशमलव से हेक्साडेसिमल
[admin@wsxdn.com ~]# echo "obase=16; Decimal" | bc
ऑक्टल से दशमलव
[admin@wsxdn.com ~]# echo "ibase=8; Octal" | bc
हेक्साडेसिमल से दशमलव
[admin@wsxdn.com ~]# echo "ibase=16; Hexadecimal" | bc
बाइनरी से ऑक्टल
[admin@wsxdn.com ~]# echo "ibase=2;obase=8 Binary" | bc

शेल स्क्रिप्टिंग भाषा में उपयोग किए जाने वाले कुछ सामान्य न्यूमेरिक टेस्ट विवरण के साथ।

Test : INTEGER1 -eq INTEGER2 Meaning: INTEGER1 is equal to INTEGER2
Test : INTEGER1 -ge INTEGER2 Meaning: INTEGER1 is greater than or equal to INTEGER2
Test: INTEGER1 -gt INTEGER2 Meaning: INTEGER1 is greater than INTEGER2
Test:INTEGER1 -le INTEGER2 Meaning: INTEGER1 is less than or equal to INTEGER2
Test: INTEGER1 -lt INTEGER2 Meaning: INTEGER1 is less than INTEGER2
Test: INTEGER1 -ne INTEGER2 Meaning: INTEGER1 is not equal to INTEGER2

इस लेख के लिए, और लेख श्रृंखला के लिए बस इतना ही। यह शेल स्क्रिप्ट सीरीज का अंतिम लेख है और इसका मतलब यह नहीं है कि स्क्रिप्टिंग भाषा पर फिर कोई लेख यहां नहीं होगा, इसका मतलब केवल यह है कि शेल स्क्रिप्टिंग ट्यूटोरियल खत्म हो गया है और जब भी हमें जानने योग्य कोई दिलचस्प विषय या आप लोगों से कोई क्वेरी मिलेगी, हम यहां से श्रृंखला जारी रखने में खुश होंगे।

स्वस्थ रहें, ट्यून रहें और Tecmint से जुड़े रहें। बहुत जल्द मैं एक और दिलचस्प विषय के साथ आऊंगा, जिसे आप लोग पढ़ना पसंद करेंगे। कमेंट सेक्शन में अपने बहुमूल्य विचार साझा करें।

  1. लिनक्स शेल स्क्रिप्टिंग: वेरिएबल्स पर गहन नज़र – भाग 9 लिनक्स शेल स्क्रिप्टिंग: वेरिएबल्स पर गहन नज़र – भाग 9

    हम पहले ही लिनक्स शेल स्क्रिप्टिंग पर लेखों की एक श्रृंखला लिख चुके हैं जिसे उस समय बहुत सराहा गया था और यह आज भी उतना ही प्रासंगिक है। शेल स्क्रिप्टिंग पर लेखों के संग्रह का लिंक यहां दिया गया है। लिनक्स शेल स्क्रिप्टिंग सीखें इस लेख में हम वेरिएबल्स, उनके निष्पादन और शेल स्क्रिप्ट में उनके कार्य

  1. कस्टम शेल फंक्शन्स और लाइब्रेरीज़ मास्टर करें: लिनक्स उपयोगकर्ताओं के लिए व्यावहारिक मार्गदर्शिका कस्टम शेल फंक्शन्स और लाइब्रेरीज़ मास्टर करें: लिनक्स उपयोगकर्ताओं के लिए व्यावहारिक मार्गदर्शिका

    लिनक्स में, शेल स्क्रिप्ट्स कई अलग-अलग तरीकों से हमारी मदद करती हैं जिनमें कुछ सिस्टम एडमिनिस्ट्रेशन कार्यों को करने या यहां तक कि स्वचालित करना, सरल कमांड लाइन टूल्स बनाना और बहुत कुछ शामिल है। इस गाइड में, हम नए लिनक्स उपयोगकर्ताओं को दिखाएंगे कि कस्टम शेल स्क्रिप्ट्स को विश्वसनीय रूप से कहां स्टो

  1. Bash स्क्रिप्टिंग में मास्टर करें: 5 वास्तविक-विश्व उदाहरणों के साथ एक व्यावहारिक परिचय Bash स्क्रिप्टिंग में मास्टर करें: 5 वास्तविक-विश्व उदाहरणों के साथ एक व्यावहारिक परिचय

    हमारे चल रहे Unix Sed और Unix Awk सीरीज़ के समान, हम Bash स्क्रिप्टिंग पर कई लेख पोस्ट करेंगे, जो व्यावहारिक उदाहरणों के साथ सभी Bash स्क्रिप्टिंग तकनीकों को कवर करेंगे। शेल एक प्रोग्राम है, जो उपयोगकर्ता कमांड्स की व्याख्या करता है। कमांड्स या तो उपयोगकर्ता द्वारा सीधे दर्ज की जाती हैं या शेल स्क्र