Bash Scripting परिचय
Alex Scriven
Data Scientist
R और Python जैसे ज़्यादातर REPLs (कंसोल) की तरह शेल में संख्याएँ नैटिव रूप से नहीं बनी होतीं
Python या R में आप यह कर सकते हैं:
>>> 1 + 4
5
यह सीधे वही लौटाएगा जो आप चाहें!
शेल में संख्याएँ नैटिवली सपोर्टेड नहीं हैं:
(टर्मिनल में)
1 + 4
bash: 1: command not found
expr एक उपयोगी यूटिलिटी प्रोग्राम है (जैसे cat या grep)
यह अब काम करेगा (टर्मिनल में):
expr 1 + 4
5
बढ़िया!
expr दशमलव को नैटिव रूप से नहीं संभालता:
(टर्मिनल में)
expr 1 + 2.5
expr: not a decimal number: '2.5'
चिंता न करें! (इसका हल है)
bc (basic calculator) एक उपयोगी कमांड-लाइन प्रोग्राम है।
आप इसे टर्मिनल में चलाकर गणनाएँ कर सकते हैं:

पाइपिंग से कैलकुलेटर खोले बिना bc का उपयोग कर सकते हैं:
echo "5 + 7.5" | bc
12.5
bc में दशमलव स्थान तय करने के लिए scale आर्ग्युमेंट भी है।
echo "10 / 3" | bc
3
echo "scale=3; 10 / 3" | bc
टर्मिनल में 'लाइनों' को अलग करने के लिए ; के उपयोग पर ध्यान दें
3.333
हम स्ट्रिंग वैरिएबल्स की तरह ही संख्यात्मक वैरिएबल्स असाइन कर सकते हैं:
dog_name='Roger' dog_age=6echo "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
संख्यात्मक वैरिएबल्स के लिए सिंगल-ब्रैकेट नोटेशन का एक रूपांतर:
expr 5 + 7
echo $((5 + 7))
12
12
ध्यान दें, यह तरीका expr उपयोग करता है, bc नहीं (दशमलव नहीं!)
याद है पिछली लेसन में हमने शेल को भीतर से कैसे कॉल किया था?
संख्यात्मक वैरिएबल्स के लिए यह बहुत उपयोगी है:
model1=87.65 model2=89.20echo "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 परिचय