Bash में संख्यात्मक वैरिएबल्स

Bash Scripting परिचय

Alex Scriven

Data Scientist

अन्य भाषाओं में संख्याएँ

R और Python जैसे ज़्यादातर REPLs (कंसोल) की तरह शेल में संख्याएँ नैटिव रूप से नहीं बनी होतीं

Python या R में आप यह कर सकते हैं:

>>> 1 + 4
5

यह सीधे वही लौटाएगा जो आप चाहें!

Bash Scripting परिचय

शेल में संख्याएँ

 

शेल में संख्याएँ नैटिवली सपोर्टेड नहीं हैं:

(टर्मिनल में)

1 + 4
bash: 1: command not found
Bash Scripting परिचय

expr का परिचय

 

expr एक उपयोगी यूटिलिटी प्रोग्राम है (जैसे cat या grep)

यह अब काम करेगा (टर्मिनल में):

expr 1 + 4
5

बढ़िया!

Bash Scripting परिचय

expr की सीमाएँ

expr दशमलव को नैटिव रूप से नहीं संभालता:

(टर्मिनल में)

expr 1 + 2.5
expr: not a decimal number: '2.5'

चिंता न करें! (इसका हल है)

Bash Scripting परिचय

bc का परिचय

bc (basic calculator) एक उपयोगी कमांड-लाइन प्रोग्राम है।

आप इसे टर्मिनल में चलाकर गणनाएँ कर सकते हैं:

शेल में BC प्रोग्राम का उपयोग

Bash Scripting परिचय

bc तक संख्याएँ पहुँचाना

 

पाइपिंग से कैलकुलेटर खोले बिना bc का उपयोग कर सकते हैं:

echo "5 + 7.5" | bc
12.5
Bash Scripting परिचय

bc का scale आर्ग्युमेंट

bc में दशमलव स्थान तय करने के लिए scale आर्ग्युमेंट भी है।

echo "10 / 3" | bc
3
echo "scale=3; 10 / 3" | bc

टर्मिनल में 'लाइनों' को अलग करने के लिए ; के उपयोग पर ध्यान दें

3.333
Bash Scripting परिचय

Bash स्क्रिप्ट्स में संख्याएँ

हम स्ट्रिंग वैरिएबल्स की तरह ही संख्यात्मक वैरिएबल्स असाइन कर सकते हैं:

dog_name='Roger'
dog_age=6

echo "My dog's name is $dog_name and he is $dog_age years old"

ध्यान दें, dog_age="6" चलेगा, पर वह स्ट्रिंग बन जाएगा!

My dog's name is Roger and he is 6 years old
Bash Scripting परिचय

डबल ब्रैकेट नोटेशन

संख्यात्मक वैरिएबल्स के लिए सिंगल-ब्रैकेट नोटेशन का एक रूपांतर:

expr 5 + 7
echo $((5 + 7))
12
12

ध्यान दें, यह तरीका expr उपयोग करता है, bc नहीं (दशमलव नहीं!)

Bash Scripting परिचय

शेल के भीतर शेल, दोबारा

याद है पिछली लेसन में हमने शेल को भीतर से कैसे कॉल किया था?

संख्यात्मक वैरिएबल्स के लिए यह बहुत उपयोगी है:

model1=87.65
model2=89.20

echo "The total score is $(echo "$model1 + $model2" | bc)"
echo "The average score is $(echo "($model1 + $model2) / 2" | bc)"
The total score is 176.85
The average score is 88
Bash Scripting परिचय

अभ्यास करते हैं!

Bash Scripting परिचय

Preparing Video For Download...