पढ़ें - मानक इनपुट से मान पढ़ें
RSI पढ़ना बिल्टइन कमांड का उपयोग मानक इनपुट की एक पंक्ति को पढ़ने के लिए किया जाता है। इस कमांड का उपयोग कीबोर्ड इनपुट को पढ़ने के लिए किया जा सकता है या, जब पुनर्निर्देशन नियोजित किया जाता है, तो फ़ाइल से डेटा की एक पंक्ति। कमांड में निम्नलिखित सिंटैक्स है:
पढ़ना [-विकल्पों] [परिवर्तनशील...]
जहां विकल्पों नीचे सूचीबद्ध उपलब्ध विकल्पों में से एक या अधिक है परिवर्तनशील इनपुट मान रखने के लिए उपयोग किए जाने वाले एक या अधिक वेरिएबल्स का नाम है। यदि कोई वेरिएबल नाम प्रदान नहीं किया गया है, तो शेल वेरिएबल जवाब दें डेटा की पंक्ति शामिल है.
मूल रूप से, पढ़ना मानक इनपुट से निर्दिष्ट चर तक फ़ील्ड निर्दिष्ट करता है। यदि हम उपयोग करने के लिए अपनी पूर्णांक मूल्यांकन स्क्रिप्ट को संशोधित करते हैं पढ़ना, यह इस तरह दिख सकता है:
#! / Bin / bash
# रीड-इंटीजर: पूर्णांक के मान का मूल्यांकन करें।
इको -एन "कृपया एक पूर्णांक दर्ज करें -> " int पढ़ें
यदि [[ "$int" =~ ^-?[0-9]+$ ]]; फिर यदि [ $int -eq 0 ]; तब
प्रतिध्वनि "$int शून्य है।"
अन्य
अगर [ $int -lt 0 ]; तब
प्रतिध्वनि "$int नकारात्मक है।"
अन्य
प्रतिध्वनि "$int सकारात्मक है।"
fi
यदि [$((int % 2)) -eq 0 ]; फिर प्रतिध्वनि करें "$int सम है।"
अन्य
प्रतिध्वनि "$int अजीब है।"
fi
फाई अन्य
इको "इनपुट मान एक पूर्णांक नहीं है।" >&2 निकास 1
fi
#! / Bin / bash
# रीड-इंटीजर: पूर्णांक के मान का मूल्यांकन करें।
इको -एन "कृपया एक पूर्णांक दर्ज करें -> " int पढ़ें
यदि [[ "$int" =~ ^-?[0-9]+$ ]]; फिर यदि [ $int -eq 0 ]; तब
प्रतिध्वनि "$int शून्य है।"
अन्य
अगर [ $int -lt 0 ]; तब
प्रतिध्वनि "$int नकारात्मक है।"
अन्य
प्रतिध्वनि "$int सकारात्मक है।"
fi
यदि [$((int % 2)) -eq 0 ]; फिर प्रतिध्वनि करें "$int सम है।"
अन्य
प्रतिध्वनि "$int अजीब है।"
fi
फाई अन्य
इको "इनपुट मान एक पूर्णांक नहीं है।" >&2 निकास 1
fi
हम का उपयोग करें गूंज साथ -n प्रॉम्प्ट प्रदर्शित करने के लिए विकल्प (जो आउटपुट पर पिछली नई लाइन को दबाता है), और फिर उपयोग करें पढ़ना वेरिएबल के लिए एक मान इनपुट करने के लिए int. इस स्क्रिप्ट को चलाने से यह परिणाम मिलता है:
[मुझे@लिनक्सबॉक्स ~]$ पढ़ें-पूर्णांक
कृपया एक पूर्णांक दर्ज करें -> 5
5 सकारात्मक है.
5 विषम है.
[मुझे@लिनक्सबॉक्स ~]$ पढ़ें-पूर्णांक
कृपया एक पूर्णांक दर्ज करें -> 5
5 सकारात्मक है.
5 विषम है.
read कई वेरिएबल्स के लिए इनपुट असाइन कर सकता है, जैसा कि इस स्क्रिप्ट में दिखाया गया है:
#! / Bin / bash
# रीड-मल्टीपल: कीबोर्ड से कई मान पढ़ें इको-एन "एक या अधिक मान दर्ज करें>"
var1 var2 var3 var4 var5 पढ़ें
इको "var1 = '$var1'" इको "var2 = '$var2'" इको "var3 = '$var3'" इको "var4 = '$var4'" इको "var5 = '$var5'"
#! / Bin / bash
# रीड-मल्टीपल: कीबोर्ड से कई मान पढ़ें इको-एन "एक या अधिक मान दर्ज करें>"
var1 var2 var3 var4 var5 पढ़ें
इको "var1 = '$var1'" इको "var2 = '$var2'" इको "var3 = '$var3'" इको "var4 = '$var4'" इको "var5 = '$var5'"
इस स्क्रिप्ट में, हम अधिकतम पाँच मान निर्दिष्ट और प्रदर्शित करते हैं। नोटिस कैसे पढ़ना अलग-अलग संख्या में मान दिए जाने पर व्यवहार करता है:
[मुझे@लिनक्सबॉक्स ~]$ पढ़ें-एकाधिक
एक या अधिक मान दर्ज करें > एबीसीडीई
var1 = 'a' var2 = 'b' var3 = 'c' var4 = 'd' var5 = 'e'
[मुझे@लिनक्सबॉक्स ~]$ पढ़ें-एकाधिक एक या अधिक मान दर्ज करें > a var1 = 'ए'
var2 = '' var3 = '' var4 = '' var5 = ''
[मुझे@लिनक्सबॉक्स ~]$ पढ़ें-एकाधिक
एक या अधिक मान दर्ज करें > abcdefg
var1 = 'a' var2 = 'b' var3 = 'c' var4 = 'd' var5 = 'efg'
[मुझे@लिनक्सबॉक्स ~]$ पढ़ें-एकाधिक
एक या अधिक मान दर्ज करें > एबीसीडीई
var1 = 'a' var2 = 'b' var3 = 'c' var4 = 'd' var5 = 'e'
[मुझे@लिनक्सबॉक्स ~]$ पढ़ें-एकाधिक एक या अधिक मान दर्ज करें > a var1 = 'ए'
var2 = '' var3 = '' var4 = '' var5 = ''
[मुझे@लिनक्सबॉक्स ~]$ पढ़ें-एकाधिक
एक या अधिक मान दर्ज करें > abcdefg
var1 = 'a' var2 = 'b' var3 = 'c' var4 = 'd' var5 = 'efg'
If पढ़ना अपेक्षित संख्या से कम प्राप्त होता है, अतिरिक्त चर खाली होते हैं, जबकि अत्यधिक मात्रा में इनपुट के परिणामस्वरूप अंतिम चर में सभी अतिरिक्त इनपुट होते हैं।
यदि के बाद कोई वेरिएबल सूचीबद्ध नहीं है पढ़ना कमांड, एक शेल वैरिएबल, जवाब दें, सभी इनपुट पर हस्ताक्षर किए जाएंगे:
#! / Bin / bash
# रीड-सिंगल: डिफ़ॉल्ट वेरिएबल इको-एन में कई मान पढ़ें "एक या अधिक मान दर्ज करें>"
पढ़ना
प्रतिध्वनि "उत्तर = '$उत्तर'"
#! / Bin / bash
# रीड-सिंगल: डिफ़ॉल्ट वेरिएबल इको-एन में कई मान पढ़ें "एक या अधिक मान दर्ज करें>"
पढ़ना
प्रतिध्वनि "उत्तर = '$उत्तर'"
इस स्क्रिप्ट को चलाने से यह परिणाम मिलता है:
[मुझे@लिनक्सबॉक्स ~]$ पढ़ें-एकल
एक या अधिक मान दर्ज करें > ए बी सी डी
उत्तर = 'एबीसीडी'
[मुझे@लिनक्सबॉक्स ~]$ पढ़ें-एकल
एक या अधिक मान दर्ज करें > ए बी सी डी
उत्तर = 'एबीसीडी'