30 बैश स्क्रिप्ट साक्षात्कार प्रश्न और उत्तर

30 Bash Script Interview Questions



बैश स्क्रिप्टिंग एक बहुत ही उपयोगी और शक्तिशाली प्रोग्रामिंग भाषा है जिसका उपयोग मुख्य रूप से किसी भी मैन्युअल कार्य को स्वचालित बनाने के लिए किया जाता है। एक नौकरी तलाशने वाला जो एक स्वचालन परीक्षक या बैश प्रोग्रामर बनना चाहता है उसे साक्षात्कार में कुछ सामान्य प्रश्नों का सामना करना पड़ता है। लिनक्स में विभिन्न प्रकार की शेल स्क्रिप्ट मौजूद हैं। बॉर्न अगेन शेल या बैश लोकप्रिय और अधिकतर इस्तेमाल की जाने वाली शेल स्क्रिप्ट में से एक है। नौकरी की तैयारी करने के लिए इस लेख में बैश स्क्रिप्टिंग भाषा पर 30 महत्वपूर्ण साक्षात्कार प्रश्न और उत्तर वर्णित हैं।

#01. बैश स्क्रिप्ट क्या है?

बैश स्क्रिप्ट एक शेल प्रोग्रामिंग भाषा है। आम तौर पर, हम प्रत्येक कमांड को अलग-अलग टाइप करके टर्मिनल से कई प्रकार के शेल कमांड चलाते हैं जिसमें समय और प्रयास की आवश्यकता होती है। अगर हमें फिर से वही कमांड चलाने की जरूरत है तो हमें टर्मिनल से सभी कमांड को फिर से निष्पादित करना होगा। लेकिन एक बैश स्क्रिप्ट का उपयोग करके, हम एक ही बैश फ़ाइल में कई शेल कमांड स्टेटमेंट स्टोर कर सकते हैं और किसी भी कमांड द्वारा फ़ाइल को किसी भी समय निष्पादित कर सकते हैं। उचित बैश स्क्रिप्ट का उपयोग करके कई सिस्टम प्रशासन से संबंधित कार्य, प्रोग्राम इंस्टॉलेशन, डिस्क बैकअप, लॉग का मूल्यांकन आदि किया जा सकता है।







#02. बैश स्क्रिप्ट का उपयोग करने के क्या फायदे हैं?

बैश स्क्रिप्ट के कई फायदे हैं जिनका वर्णन नीचे किया गया है:



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

#03. बैश स्क्रिप्ट के नुकसान का उल्लेख करें

बैश स्क्रिप्ट के कुछ नुकसान नीचे बताए गए हैं:



  • यह अन्य भाषाओं की तुलना में धीमी गति से काम करता है।
  • अनुचित स्क्रिप्ट पूरी प्रक्रिया को नुकसान पहुंचा सकती है और एक जटिल त्रुटि उत्पन्न कर सकती है।
  • यह एक बड़े और जटिल अनुप्रयोग को विकसित करने के लिए उपयुक्त नहीं है।
  • इसमें अन्य मानक प्रोग्रामिंग भाषाओं की तुलना में कम डेटा संरचना होती है।

#04. बैश में किस प्रकार के चर का उपयोग किया जाता है?

बैश स्क्रिप्ट में दो प्रकार के वेरिएबल्स का उपयोग किया जा सकता है। य़े हैं:

सिस्टम चर
वे चर जो Linux ऑपरेटिंग सिस्टम द्वारा पूर्व-परिभाषित और अनुरक्षित होते हैं, सिस्टम चर कहलाते हैं। इस प्रकार के वेरिएबल्स हमेशा एक बड़े अक्षर द्वारा उपयोग किए जाते हैं। इन चरों के डिफ़ॉल्ट मानों को आवश्यकताओं के आधार पर बदला जा सकता है।

`सेट`, `एनवी` और ` प्रिंटेंव ` कमांड का उपयोग सिस्टम चर की सूची को प्रिंट करने के लिए किया जा सकता है।

उदाहरण:





#!/बिन/बैश
# प्रिंटिंग सिस्टम वैरिएबल

#प्रिंट बैश शेल नाम
फेंक दिया $बाश

# प्रिंट बैश शेल संस्करण
फेंक दिया $BASH_VERSION

# होम निर्देशिका नाम प्रिंट करें
फेंक दिया $होम

उपयोगकर्ता द्वारा परिभाषित चर

वे चर जो उपयोक्ताओं द्वारा बनाए और अनुरक्षित किए जाते हैं, उपयोक्ता-परिभाषित चर कहलाते हैं। उन्हें स्थानीय चर भी कहा जाता है। इस प्रकार के वेरिएबल्स को लोअरकेस या अपरकेस या अपरकेस और लोअरकेस दोनों अक्षरों का उपयोग करके घोषित किया जा सकता है। लेकिन सिस्टम वेरिएबल से वेरिएबल को अलग करने के लिए सभी अपरकेस अक्षर का उपयोग करने से बचना बेहतर है।
उदाहरण:

#!/बिन/बैश

एक पर=100
फेंक दिया $num

#05. बैश में वेरिएबल्स को कैसे डिक्लेयर और डिलीट करें?

चर को डेटा प्रकार या डेटा प्रकार के बिना बैश में घोषित किया जा सकता है। यदि कोई बैश वैरिएबल बिना घोषित किया गया है घोषित कमांड, फिर चर को एक स्ट्रिंग के रूप में माना जाएगा। बैश चर के साथ घोषित किया गया है घोषित समय घोषणा पर चर के डेटा प्रकार को परिभाषित करने के लिए आदेश।



-आर , -आई, -ए, -ए, -एल, -यू, -टी तथा -एक्स विकल्पों के साथ इस्तेमाल किया जा सकता है घोषित विभिन्न डेटा प्रकारों के साथ एक चर घोषित करने के लिए आदेश।

उदाहरण:

#!/बिन/बैश

#बिना किसी प्रकार के वैरिएबल घोषित करें
एक पर=10

#मान जोड़े जाएंगे लेकिन जोड़े नहीं जाएंगे
नतीजा=$num+बीस
फेंक दिया $परिणाम

# पूर्णांक प्रकार के साथ चर घोषित करें
घोषित -मैं एक पर=10

#मान जोड़े जाएंगे
घोषित -मैं नतीजा=संख्या+बीस
फेंक दिया $परिणाम

सेट नहीं किसी भी बैश चर को हटाने के लिए कमांड का उपयोग किया जाता है। चर का उपयोग करने के बाद दुर्गम या अपरिभाषित होगा सेट नहीं आदेश।

उदाहरण:

#!/बिन/बैश

पी='लिनक्स संकेत'
फेंक दिया $ str
सेट नहीं $ str
फेंक दिया $ str

#06. बैश स्क्रिप्ट में टिप्पणियां कैसे जोड़ें?

बैश स्क्रिप्ट में सिंगल लाइन और मल्टी-लाइन टिप्पणियों का उपयोग किया जा सकता है। ' # ' सिंगल लाइन कमेंट के लिए सिंबल का इस्तेमाल किया जाता है। '<<’ एक सीमांकक के साथ प्रतीक और ':' सिंगल (') के साथ बहु-पंक्ति टिप्पणी जोड़ने के लिए उपयोग किया जाता है।

उदाहरण:

#!/बिन/बैश
# टेक्स्ट प्रिंट करें [सिंगल लाइन कमेंट]
फेंक दिया 'बैश प्रोग्रामिंग'
< योग की गणना करें
दो संख्याओं में से [मल्टीलाइन टिप्पणी]
टिप्पणी जोड़ें

एक पर=25+35
फेंक दिया $num
:'
दो को मिलाएं
स्ट्रिंग डेटा [मल्टीलाइन टिप्पणी]
'

डोरी='नमस्ते'
फेंक दिया $स्ट्रिंग' दुनिया'

#07. आप बैश स्क्रिप्ट में स्ट्रिंग्स को कैसे जोड़ सकते हैं?

स्ट्रिंग मानों को अलग-अलग तरीकों से बैश में जोड़ा जा सकता है। आम तौर पर, स्ट्रिंग मानों को एक साथ रखकर जोड़ दिया जाता है लेकिन स्ट्रिंग डेटा को संयोजित करने के लिए बैश में अन्य तरीके भी होते हैं।

उदाहरण:

#!/बिन/बैश
#वैरिएबल को इनिशियलाइज़ करें
str1='पीएचपी'
str2='दे घुमा के'
str3='पर्ल'

# स्पेस के साथ स्ट्रिंग प्रिंट करें
फेंक दिया $str1 $str2 $str3

#सभी वेरिएबल को मिलाएं और दूसरे वेरिएबल में स्टोर करें
पी='$str1,$str2तथा$str3'

#स्ट्रिंग के मौजूदा मान के साथ अन्य स्ट्रिंग डेटा को मिलाएं
स्ट्र + ='स्क्रिप्टिंग भाषाएं हैं'

#स्ट्रिंग प्रिंट करें
फेंक दिया $ str

#08. बैश में आउटपुट प्रिंट करने के लिए कौन से कमांड का उपयोग किया जाता है?

`गूंज` तथा `प्रिंटफ` बैश में आउटपुट प्रिंट करने के लिए कमांड का उपयोग किया जा सकता है। 'गूंज' ` कमांड का प्रयोग साधारण आउटपुट को प्रिंट करने के लिए किया जाता है और `प्रिंटफ` फ़ॉर्मेट किए गए आउटपुट को प्रिंट करने के लिए कमांड का उपयोग किया जाता है।

उदाहरण:

#!/बिन/बैश

#पाठ प्रिंट करें
फेंक दिया 'लिनक्सहिंट में आपका स्वागत है'
स्थल='linuxhint.com'
#स्वरूपित टेक्स्ट प्रिंट करें
printf '%s एक लोकप्रिय ब्लॉग साइट हैएन' $साइट

#09. टर्मिनल से बैश में इनपुट कैसे लें?

'पढ़ें' टर्मिनल से इनपुट लेने के लिए बैश स्क्रिप्ट में कमांड का उपयोग किया जाता है।

उदाहरण:

#!/बिन/बैश
#प्रिंट संदेश
फेंक दिया 'अपना नाम दर्ज करें'
#उपयोगकर्ता से इनपुट लें
पढ़नानाम
# अन्य स्ट्रिंग के साथ $name का मान प्रिंट करें
फेंक दिया 'आपका नाम है$नाम'

#10. बैश में कमांड-लाइन तर्कों का उपयोग कैसे करें?

कमांड-लाइन तर्क किसके द्वारा पढ़े जाते हैं $1, $2, $3…$n चर। बैश स्क्रिप्ट निष्पादित करते समय टर्मिनल में कमांड-लाइन तर्क मान प्रदान किए जाते हैं। $ 1 पहला तर्क पढ़ने के लिए प्रयोग किया जाता है, $ 2 दूसरे तर्क आदि को पढ़ने के लिए प्रयोग किया जाता है।

उदाहरण:

#!/बिन/बैश
#जांचें कि कोई तर्क दिया गया है या नहीं
अगर [[ $# -ईक्यू 0 ]];फिर
फेंक दिया 'कोई तर्क नहीं दिया जाता है।'
बाहर जाएं 0
होना
#पहले तर्क मान को स्टोर करें
रंग=$ 1
# तर्क को अन्य स्ट्रिंग के साथ प्रिंट करें
printf 'आपका पसंदीदा रंग %s . हैएन' $ रंग

#1 1। क्या बैश कमजोर टाइप की गई भाषा है? क्यों?

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

उदाहरण:

#!/बिन/बैश

#$myVar का डेटा प्रकार डिफ़ॉल्ट रूप से स्ट्रिंग है
माय वार=29

# वेरिएबल प्रिंट करें
फेंक दिया $myVar

# 67 . के मान के साथ पूर्णांक चर $number घोषित करें
घोषित -मैं संख्या=67

#चर प्रिंट करें
फेंक दिया $नंबर

# स्ट्रिंग डेटा को संख्यात्मक चर में असाइन करें। निम्न पंक्ति उत्पन्न होगी
# सिंटैक्स त्रुटि और $number का मान नहीं बदलेगा
संख्या='मुझे बैश पसंद है'
फेंक दिया $नंबर

#12. फ़ाइल की प्रत्येक पंक्ति से दूसरे शब्द या कॉलम को कैसे पढ़ा जाए?

फ़ाइल के दूसरे शब्द या कॉलम को विभिन्न बैश कमांड का उपयोग करके आसानी से बैश स्क्रिप्ट में पढ़ा जा सकता है, जैसे `awk`, `sed` इत्यादि। यहां, का उपयोग `अजीब` निम्नलिखित उदाहरण में दिखाया गया है।
उदाहरण: मान लीजिए, course.txt फ़ाइल में निम्नलिखित सामग्री है और हमने इस फ़ाइल की प्रत्येक पंक्ति का केवल दूसरा शब्द मुद्रित किया है।

CSE201 जावा प्रोग्रामिंग
CSE303 डेटा संरचना
CSE408 यूनिक्स प्रोग्रामिंग#!/बिन/बैश
# निम्न स्क्रिप्ट प्रत्येक पंक्ति के दूसरे शब्द को course.txt फ़ाइल से प्रिंट करेगी।
# कैट कमांड का आउटपुट awk कमांड को पास होगा जो दूसरा शब्द पढ़ेगा
प्रत्येक पंक्ति के #।
फेंक दिया ``बिल्लीकोर्स.txt| awk '{प्रिंट $2}'``

#13. बैश में एक सरणी चर घोषित और एक्सेस कैसे करें?

दोनों सांख्यिक और साहचर्य सरणियाँ एक बैश स्क्रिप्ट द्वारा समर्थित हैं। एक सरणी चर घोषित कमांड के साथ और बिना घोषित किया जा सकता है। -प्रति विकल्प का उपयोग डिक्लेयर कमांड के साथ एक संख्यात्मक सरणी को परिभाषित करने के लिए किया जाता है और -प्रति विकल्प का उपयोग बैश में एक सहयोगी सरणी को परिभाषित करने के लिए घोषणा कथन के साथ किया जाता है। डिक्लेयर कमांड के बिना, संख्यात्मक सरणी को केवल बैश में परिभाषित किया जा सकता है।

उदाहरण:

#!/बिन/बैश

# एक साधारण संख्यात्मक सरणी घोषित करें
गिरफ्तारी1=(कोडइग्निटर लारवेल रिएक्टजेएस)

# $arr1 . का पहला तत्व मान प्रिंट करें
फेंक दिया $ {गिरफ्तारी1 [0] {

# डिक्लेयर कमांड का उपयोग करके एक संख्यात्मक सरणी घोषित करें
घोषित -प्रति arr2=(एचटीएमएल सीएसएस जावास्क्रिप्ट)

# $arr2 . का दूसरा तत्व मान प्रिंट करें
फेंक दिया ${arr2[1]}

# घोषणा कथन का उपयोग करके एक सहयोगी सरणी घोषित करें
घोषित -प्रति गिरफ्तार 3=( [ढांचा]=लारवेल[मुख्यमंत्रियों]=वर्डप्रेस[पुस्तकालय]=JQuery)

# $arr3 . का तीसरा तत्व मान प्रिंट करें
फेंक दिया ${arr3[लाइब्रेरी]}

किसी सरणी के सभी तत्वों को किसी भी लूप या '*' प्रतीक को सरणी अनुक्रमणिका के रूप में उपयोग करके एक्सेस किया जा सकता है।

#14. कैसे सशर्त बयान बैश में इस्तेमाल किया जा सकता है?

अधिकांश प्रोग्रामिंग भाषाओं में सबसे सामान्य सशर्त कथन है अगर-elseif-else बयान। वाक्य रचना अगर-अन्य-अन्य बैश में बयान अन्य प्रोग्रामिंग भाषाओं से थोड़ा अलग है। 'अगर' स्टेटमेंट को बैश स्क्रिप्ट और हर प्रकार के दो तरीकों से घोषित किया जा सकता है 'अगर' ब्लॉक के साथ बंद होना चाहिए 'होना' . 'अगर' कथन को अन्य प्रोग्रामिंग भाषाओं की तरह तीसरे कोष्ठक या पहले कोष्ठक द्वारा परिभाषित किया जा सकता है।

वाक्य - विन्यास:
प्रति।

अगर [शर्त];
फिर
बयान
होना

बी।

अगर [शर्त];फिर
बयान1
अन्यथा
बयान2
होना

सी।

अगर [शर्त];फिर
बयान1
एलिफ[शर्त];फिर
बयान2
….
अन्यथा
कथन संख्या
होना

उदाहरण:

#!/बिन/बैश

# $n . के लिए मान असाइन करें
एन=30
# चेक $n 100 से बड़ा है या नहीं
अगर [ $n -जीटी 100 ];फिर
फेंक दिया '$n100 से कम है'
# चेक $n आईडी 50 से अधिक है या नहीं
एलिफ [ $n -जीटी पचास ];फिर
फेंक दिया '$n50 से कम है'
अन्यथा
फेंक दिया '$n50 से कम है'
होना

#15. बैश में मूल्यों की तुलना कैसे करें?

मूल्यों की तुलना करने के लिए बैश में छह प्रकार के तुलना ऑपरेटरों का उपयोग किया जा सकता है। डेटा प्रकार के आधार पर इन ऑपरेटरों को बैश में उपयोग करने के दो तरीके हैं। इनका उल्लेख नीचे किया गया है।

स्ट्रिंग तुलना पूर्णांक कोमारिसन विवरण
== -ईक्यू इसका उपयोग समानता की जांच के लिए किया जाता है
! = -जन्म इसका उपयोग असमानता की जांच के लिए किया जाता है
< -एलटीई इसका उपयोग किया जाता है यह जांचें कि पहला मान दूसरे मान से कम है या नहीं
> -जीटी इसका उपयोग किया जाता है यह जांचें कि पहला मान दूसरे मान से बड़ा है या नहीं
<= -NS इसका उपयोग किया जाता है यह जांचें कि पहला मान दूसरे मान से कम या बराबर है या नहीं
> = -देना इसका उपयोग किया जाता है यह जांचें कि पहला मान दूसरे मान से बड़ा या उसके बराबर है या नहीं

उदाहरण:

#!/बिन/बैश
# $n . प्रारंभ करें
एन=130
या='यहाँ तक की'
# चेक $n 100 से अधिक या उसके बराबर है या '-ge' का उपयोग नहीं कर रहा है।
अगर [ $n -देना 100 ];फिर
फेंक दिया '$n100 से अधिक या बराबर है'
अन्यथा
फेंक दिया '$n100 से कम है'
होना
# '==' ऑपरेटर का उपयोग करके चेक $n सम या विषम है
अगर (( $ ओ=='यहाँ तक की' ));फिर
फेंक दिया 'संख्या सम है'
अन्यथा
फेंक दिया 'संख्या विषम है'
होना

#16. बैश में if-elseif-else स्टेटमेंट के विकल्प के रूप में कौन सा कंडीशनल स्टेटमेंट इस्तेमाल किया जा सकता है?

'मामला' एक वैकल्पिक tp . के रूप में कथन का उपयोग किया जा सकता है अगर-अगर-अगर बयान। के लिए वाक्य रचना 'मामला' बैश लिपियों में बयान से अलग है स्विच केस अन्य प्रोग्रामिंग भाषाओं का विवरण। 'मामला' ब्लॉक बंद है 'एसैक' बैश में बयान। नहीं ' टूटना 'कथन अंदर प्रयोग किया जाता है' मामला 'ब्लॉक को ब्लॉक से समाप्त करने के लिए ब्लॉक करें।

वाक्य - विन्यास:

मामला में
मैच पैटर्न1)आदेशों;;
मैच पैटर्न2)आदेशों;;
……
मैच पैटर्न n)आदेशों;;
esac

उदाहरण:

#!/बिन/बैश
#वैरिएबल $टिकट को इनिशियलाइज़ करें
टिकट=१०१
# टिकट के मूल्य की तुलना 23, 101 और 503 से करें
मामला $टिकट में
2. 3)
# संदेश प्रिंट करें यदि मान 23 है
फेंक दिया 'आपको पहला पुरस्कार मिला';;
१०१)
# संदेश प्रिंट करें यदि मान 101 है
फेंक दिया 'आपको दूसरा पुरस्कार मिला';;
503)
# 503 का मान होने पर संदेश प्रिंट करें
फेंक दिया 'आपको तीसरा पुरस्कार मिला';;
*)
# संदेश प्रिंट करें यदि मान 23, 101 और 503 से मेल नहीं खाता है
फेंक दिया 'क्षमा करें, अगली बार कोशिश करें'
बाहर जाएं 0;;
esac

#17. बैश में किस प्रकार के लूप का उपयोग किया जा सकता है?

तीन प्रकार के लूप बैश स्क्रिप्ट द्वारा समर्थित होते हैं। य़े हैं जबकि इसके लिए तथा जब तक लूप बैश में लूप लूप की शुरुआत में स्थिति की जांच करते हैं। जबकि लूप तब तक काम करता है जब तक कि कंडीशन सही नहीं रहती और जब तक लूप तब तक काम करता है जब तक कि कंडीशन झूठी न हो। उपयोग करने के दो तरीके हैं के लिये कुंडली। एक है सामान्य के लिये लूप जिसमें तीन भाग होते हैं और दूसरा है में लिए कुंडली। इन तीन छोरों के उपयोग निम्नलिखित उदाहरण में दिखाए गए हैं।

उदाहरण:

#!/बिन/बैश
# $n . प्रारंभ करें
एन=5
# लूप के दौरान 5-1 के वर्ग की गणना करें
जबकि [ $n -जीटी 0 ]
करना
दूसरी तिमाही समीक्षा= $((एन*एन))
फेंक दिया 'का वर्ग'$nहै$वर्ग'
((एन--))
किया हुआ

# लूप के लिए उपयोग करके 5-1 के वर्ग की गणना करें
के लिये (( मैं=5; मैं>0; मैं--))
करना
दूसरी तिमाही समीक्षा= $((मैं*मैं))
फेंक दिया 'का वर्ग'$मैंहै$वर्ग'
किया हुआ

# $x . प्रारंभ करें
एक्स=5

# लूप तक का उपयोग करके 5-1 के वर्ग की गणना करें
जब तक [ $ x -NS 0 ]
करना
दूसरी तिमाही समीक्षा= $((एक्स*एक्स))
फेंक दिया 'का वर्ग'$ xहै$वर्ग'
((एक्स--))
किया हुआ

#18. सबरूटीन्स को कैसे घोषित किया जा सकता है और बैश में बुलाया जा सकता है?

बैश में किसी फ़ंक्शन या प्रक्रिया को सबरूटीन कहा जाता है। बैश में सबरूटीन की घोषणा और कॉलिंग अन्य भाषाओं से अलग है। अन्य मानक प्रोग्रामिंग भाषाओं के विपरीत सबरूटीन्स में कोई तर्क घोषित नहीं किया जा सकता है। लेकिन स्थानीय चरों को उप-रूटीन के भीतर परिभाषित किया जा सकता है: 'स्थानीय' खोजशब्द।

उदाहरण:

#!/बिन/बैश
# वैरिएबल $x और $y को इनिशियलाइज़ करें जो ग्लोबल हैं
एक्स=10
तथा=35

# फ़ंक्शन घोषित करें
माय फंक() {
# स्थानीय चर $x . घोषित करें
स्थानीय एक्स=पंद्रह

# वैश्विक चर $y . को फिर से असाइन करें
तथा=25

# $x और $y . के योग की गणना करें
साथ में= $((एक्स + वाई))

# स्थानीय चर, $x, और वैश्विक चर, $y . का योग प्रिंट करें
फेंक दिया 'कुल मिलाकर$ xतथा$ yके बराबर$ z'
}

# फ़ंक्शन को कॉल करें
माय फंक

# वैश्विक चर, $x, और $y . का योग प्रिंट करें
फेंक दिया 'कुल मिलाकर$ xतथा$ yके बराबर$ z'

#19. बैश में स्ट्रिंग डेटा के कुछ हिस्से को कैसे काटें और प्रिंट करें?

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

उदाहरण:

#!/बिन/बैश
# स्ट्रिंग मान को $string . में प्रारंभ करें
डोरी='पायथन स्क्रिप्टिंग लैंग्वेज'
# स्ट्रिंग मान को स्थिति 7 से स्ट्रिंग के अंत तक काटें
फेंक दिया ${स्ट्रिंग:7}
# 9 वर्णों के स्ट्रिंग मान को स्थिति 7 . से काटें
फेंक दिया ${स्ट्रिंग:7:9}
# स्ट्रिंग मान को 17 से घटाकर 20 . करें
फेंक दिया ${स्ट्रिंग:17:-4}

#20. बैश में अंकगणितीय संचालन करने के कुछ तरीकों का उल्लेख करें?

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

उदाहरण:

#!/बिन/बैश
# एक्सप्र और पैरामीटर विस्तार का उपयोग करके घटाव की गणना करें
var1= $( एक्सप्रेस १२०-100 )
#परिणाम प्रिंट करें
फेंक दिया $ var1
# लेट कमांड का उपयोग करके जोड़ की गणना करें
होने देना var2=200+300
# परिणाम प्रिंट करें
फेंक दिया $var2
# परिणाम प्राप्त करने के लिए 'बीसी' का उपयोग करके विभाजन के मूल्य की गणना करें और प्रिंट करें
# भिन्नात्मक मान के साथ
फेंक दिया 'पैमाना = 2; 44/7' | बीसी
# डबल ब्रैकेट का उपयोग करके गुणा के मूल्य की गणना करें
var3= $(( 5*3 ))
#परिणाम प्रिंट करें
फेंक दिया $var3

#21. कैसे एक निर्देशिका की जांच करने के लिए मौजूद है या बैश का उपयोग नहीं कर रहा है?

फ़ाइल या निर्देशिका मौजूद है या नहीं और फ़ाइल का प्रकार जांचने के लिए बैश के पास कई परीक्षण आदेश हैं। '-डी' विकल्प का उपयोग निर्देशिका पथ के साथ सशर्त विवरण के रूप में किया जाता है ताकि यह जांचा जा सके कि निर्देशिका मौजूद है या नहीं। यदि निर्देशिका मौजूद है, तो यह सच हो जाएगी अन्यथा यह झूठी वापसी करेगी।

उदाहरण:

#!/बिन/बैश
# वेरिएबल में पथ के साथ निर्देशिका असाइन करें, $path
पथ='/ होम/उबंटू/अस्थायी'
# जांचें कि निर्देशिका मौजूद है या नहीं
अगर [ -डी '$पथ' ];फिर
# निर्देशिका मौजूद होने पर संदेश प्रिंट करें
फेंक दिया 'निर्देशिका मौजूद है'
अन्यथा
# यदि निर्देशिका मौजूद नहीं है तो संदेश प्रिंट करें
फेंक दिया 'निर्देशिका मौजूद नहीं है'
होना

#22. सभी कथनों को निष्पादित किए बिना बैश स्क्रिप्ट को कैसे समाप्त किया जा सकता है?

का उपयोग करते हुए 'बाहर जाएं' कमांड, एक बैश स्क्रिप्ट को सभी कथनों को निष्पादित किए बिना समाप्त किया जा सकता है। निम्न स्क्रिप्ट जाँच करेगी कि कोई विशेष फ़ाइल मौजूद है या नहीं। यदि फ़ाइल मौजूद है, तो यह फ़ाइल के कुल वर्णों को प्रिंट करेगी और यदि फ़ाइल मौजूद नहीं है तो यह एक संदेश दिखाकर स्क्रिप्ट को समाप्त कर देगी।

उदाहरण:

#!/बिन/बैश

# फ़ाइल नाम को वेरिएबल में इनिशियलाइज़ करें, $filename
फ़ाइल का नाम='पाठ्यक्रम.txt'

# -f विकल्प का उपयोग करके जांचें कि फ़ाइल मौजूद है या नहीं
अगर [ -एफ '$फ़ाइलनाम' ];फिर
# फ़ाइल मौजूद होने पर संदेश प्रिंट करें
फेंक दिया '$फ़ाइलनाममौजूद'
अन्यथा
# यदि फ़ाइल मौजूद नहीं है तो संदेश प्रिंट करें
फेंक दिया '$फ़ाइलनाममौजूद नहीं'
#स्क्रिप्ट समाप्त करें
बाहर जाएं 1
होना

# यदि फ़ाइल मौजूद है तो फ़ाइल की लंबाई की गणना करें
लंबाई=``स्वागत -सी $फ़ाइलनाम``

# फ़ाइल की लंबाई प्रिंट करें
फेंक दिया 'कुल वर्ण -$लंबाई'

#23. बैश में ब्रेक और कंटिन्यू स्टेटमेंट के क्या उपयोग हैं?

टूटना एक शर्त के आधार पर पूर्ण पुनरावृत्ति को पूरा किए बिना लूप से समाप्त करने के लिए कथन का उपयोग किया जाता है और जारी रखें एक शर्त के आधार पर कुछ बयानों को छोड़ने के लिए लूप में स्टेटमेंट का उपयोग किया जाता है। के उपयोग टूटना तथा जारी रखें निम्नलिखित उदाहरण में कथनों की व्याख्या की गई है।

उदाहरण:

#!/बिन/बैश
# लूप शुरू करने के लिए वेरिएबल $i से 0 को इनिशियलाइज़ करें
मैं=0
# लूप 10 बार फ़ोट को फिर से चालू करेगा
जबकि [ $मैं -NS 10 ]
करना
# मूल्य $i को 1 . से बढ़ाएँ
((मैं++))
# यदि $i का मान 8 के बराबर है तो 'ब्रेक' स्टेटमेंट का उपयोग करके लूप को समाप्त करें
अगर [ $मैं -ईक्यू 8 ];फिर
टूटना;
होना
# यदि $i का मान 6 से अधिक है तो लूप के अंतिम कथन को छोड़ दें
# जारी रखें कथन का उपयोग करके
अगर [ $मैं -देना 6 ];फिर
जारी रखें;
होना
फेंक दिया 'मैं का वर्तमान मूल्य =$मैं'
किया हुआ

# लूप से समाप्त होने के बाद $i का मान प्रिंट करें
फेंक दिया 'अब i का मान =$मैं'

#24. बैश फ़ाइल को निष्पादन योग्य कैसे बनाया जाए?

निष्पादन योग्य बैश फ़ाइलों का उपयोग करके बनाया जा सकता है 'छमोद' आदेश। निष्पादन योग्य अनुमति का उपयोग करके सेट किया जा सकता है '+ एक्स' में चामोद स्क्रिप्ट फ़ाइल नाम के साथ कमांड। बैश फ़ाइलों को स्पष्ट के बिना निष्पादित किया जा सकता है 'दे घुमा के' उस फ़ाइल के लिए निष्पादन बिट सेट करने के बाद आदेश।

उदाहरण:

# निष्पादन बिट सेट करें
$चामोद+ एक्स फ़ाइल नाम

# निष्पादन योग्य फ़ाइल चलाएँ
$./फ़ाइल नाम.sh

#25. फाइलों का परीक्षण करने के लिए उपयोग किए जाने वाले कुछ विकल्पों का उल्लेख करें

फ़ाइल का परीक्षण करने के लिए बैश में कई विकल्प उपलब्ध हैं। कुछ विकल्पों का उल्लेख नीचे किया गया है।

विकल्प विवरण
-एफ इसका उपयोग फ़ाइल के अस्तित्व का परीक्षण करने के लिए किया जाता है और यह एक नियमित फ़ाइल है।
-और यह परीक्षण करने के लिए प्रयोग किया जाता है कि फ़ाइल केवल मौजूद है।
-आर इसका उपयोग यह जांचने के लिए किया जाता है कि फ़ाइल मौजूद है और इसमें पढ़ने की अनुमति है।
-में इसका उपयोग फ़ाइल के अस्तित्व का परीक्षण करने के लिए किया जाता है और इसे अनुमति लिखनी होती है।
-एक्स इसका उपयोग फ़ाइल के अस्तित्व का परीक्षण करने के लिए किया जाता है और इसमें निष्पादन की अनुमति होती है।
-डी इसका उपयोग निर्देशिका मौजूद है का परीक्षण करने के लिए किया जाता है।
-NS इसका उपयोग फ़ाइल के अस्तित्व का परीक्षण करने के लिए किया जाता है और यह एक प्रतीकात्मक लिंक है।
-एस इसका उपयोग फ़ाइल के अस्तित्व का परीक्षण करने के लिए किया जाता है और यह एक सॉकेट है।
-बी इसका उपयोग यह जांचने के लिए किया जाता है कि फ़ाइल एक ब्लॉक डिवाइस है।
-एस इसका उपयोग यह जांचने के लिए किया जाता है कि फ़ाइल शून्य आकार नहीं है।
-ई.जी यह जांचता था कि पहली फ़ाइल की सामग्री दूसरी फ़ाइल की तुलना में नई है। उदाहरण के लिए, file1 -nt file2 इंगित करता है कि file1 file2 से नया है।
-ओटी यह जांचता था कि पहली फ़ाइल की सामग्री दूसरी फ़ाइल से पुरानी है। उदाहरण के लिए, file1 -ot file2 इंगित करता है कि file1 file2 से पुराना है।
-ईएफ इसका उपयोग यह जांचने के लिए किया जाता है कि दो हार्ड लिंक एक ही फाइल को संदर्भित करते हैं। उदाहरण के लिए, flink1 -ef flink2 इंगित करता है कि flink1 और flink2 हार्ड लिंक हैं और दोनों एक ही फाइल को संदर्भित करते हैं।

#26. 'बीसी' का क्या मतलब है और इस कमांड को बैश में कैसे इस्तेमाल किया जा सकता है?

'बीसी' का पूर्ण रूप है बैश कैलकुलेटर बैश में अधिक सटीक अंकगणितीय संचालन करने के लिए। यदि कोई अंकगणितीय संक्रिया बैश में उपयोग करके की जाती है तो भिन्नात्मक भाग को छोड़ दिया जाता है 'एक्सप्र' आदेश। भिन्नात्मक भाग को उपयोग करके भी गोल किया जा सकता है स्केल के साथ मूल्य 'बीसी' आदेश।

उदाहरण:

#!/बिन/बैश
# भिन्नात्मक मान के बिना विभाजन की गणना करें
फेंक दिया '39/7' | बीसी

# पूर्ण भिन्नात्मक मान के साथ विभाजन की गणना करें
फेंक दिया '39/7' | बीसी -NS

# दशमलव बिंदु के बाद तीन अंकों के साथ विभाजन की गणना करें
फेंक दिया 'पैमाना = 3; 39/7' | बीसी

#27. आप किसी फ़ाइल की किसी विशेष पंक्ति को बैश में कैसे प्रिंट कर सकते हैं?

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

उदाहरण:

#!/बिन/बैश

# NR चर के साथ `awk` कमांड का उपयोग करके फ़ाइल से पहली पंक्ति को पढ़ें और संग्रहीत करें
लाइन 1=``awk '{if(NR==1) प्रिंट $0}'कोर्स.txt``
# लाइन प्रिंट करें
फेंक दिया $लाइन1

# -n विकल्प के साथ `sed` कमांड का उपयोग करके फ़ाइल से दूसरी पंक्ति पढ़ें
लाइन 2=``एसईडी -एन२पी कोर्स.txt``
# लाइन प्रिंट करें
फेंक दिया $लाइन2

# -n विकल्प के साथ `tail` कमांड का उपयोग करके फ़ाइल से अंतिम पंक्ति पढ़ें
पंक्ति 3=``पूंछ -एन 1कोर्स.txt``
# फाइल प्रिंट करें
फेंक दिया $लाइन3

#28. आईएफएस क्या है?

भारतीय विदेश सेवा एक विशेष खोल चर है। का फुल फॉर्म भारतीय विदेश सेवा आंतरिक क्षेत्र विभाजक है,
यह शब्द को पाठ की पंक्ति से अलग करने के लिए सीमांकक के रूप में कार्य करता है। यह मुख्य रूप से एक स्ट्रिंग को विभाजित करने, एक कमांड पढ़ने, टेक्स्ट को बदलने आदि के लिए उपयोग किया जाता है।

उदाहरण:

#!/बिन/बैश
# डिक्लेयर ':' टेक्स्ट को विभाजित करने के लिए डिलीमीटर के रूप में
भारतीय विदेश सेवा=':'
# टेक्स्ट डेटा को ':' से $text . पर असाइन करें
मूलपाठ='लाल: हरा: नीला'
# लूप के लिए IFS के आधार पर पाठ को विभाजित करने के बाद प्रत्येक शब्द को पढ़ेगा
के लियेबजेमें $पाठ;करना
# शब्द प्रिंट करें
फेंक दिया $ घंटे
किया हुआ

#29. स्ट्रिंग डेटा की लंबाई कैसे पता करें?

'एक्सपीआर', 'डब्ल्यूसी' तथा 'अजीब' बैश में एक स्ट्रिंग डेटा की लंबाई का पता लगाने के लिए कमांड का उपयोग किया जा सकता है। 'एक्सप्र' तथा 'अजीब' आदेश का उपयोग लंबाई विकल्प, 'स्वागत' कमांड का उपयोग करता है '-सी' स्ट्रिंग की लंबाई गिनने का विकल्प।

उदाहरण:

उपरोक्त आदेशों के उपयोग निम्न स्क्रिप्ट में दिखाए गए हैं।

#!/बिन/बैश
# `expr` लंबाई विकल्प का उपयोग करके लंबाई की गणना करें
फेंक दिया ``एक्सप्रेसलंबाई'मुझे PHP पसंद है'``
# `wc` कमांड का उपयोग करके लंबाई की गणना करें
फेंक दिया 'मुझे बैश पसंद है' | स्वागत -सी
# `awk` कमांड का उपयोग करके लंबाई की गणना करें
फेंक दिया 'मुझे पायथन पसंद है' | awk '{प्रिंट लंबाई}'

#30. समानांतर में एकाधिक बैश स्क्रिप्ट कैसे चलाएं?

एकाधिक बैश स्क्रिप्ट का उपयोग करके समानांतर में निष्पादित किया जा सकता है नोहुप आदेश। एक फ़ोल्डर से समानांतर में कितने बैश फ़ाइलों को निष्पादित किया जा सकता है, निम्न उदाहरण में दिखाया गया है।

उदाहरण:

# वेरिएबल $dir में पथ के साथ एक फ़ोल्डर नाम असाइन करें जिसमें शामिल है
# एकाधिक बैश फ़ाइलें
आपसे='घर/उबंटू/अस्थायी'

# लूप के लिए निर्देशिका से प्रत्येक फ़ाइल को पढ़ेगा और समानांतर में निष्पादित करेगा
के लियेलिपिमेंआपसे/ *।श्री
करना
नोहुप दे घुमा के '$स्क्रिप्ट' और
किया हुआ

निष्कर्ष:

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