हमारे बैश परिचय लेख में, हमने सीखा कि शेल-स्क्रिप्ट फ़ाइल में शेल दुभाषिया द्वारा निष्पादित की जाने वाली कमांड की सूची होती है। इस लेख में आइए हम शेल कमांड और इसके इंटर्नल के बारे में समीक्षा करें।
एक आदेश शब्दों का एक क्रम है। पहला शब्द कमांड को निष्पादित करने के लिए इंगित करता है और शेष शब्दों को एक तर्क के रूप में पारित किया जाता है, जहां तर्क कमांड के विकल्प या पैरामीटर हो सकते हैं।
कुछ सामान्य यूनिक्स कमांड जिन्हें आप कमांड लाइन पर निष्पादित करते हैं शेल कमांड हैं। उदाहरण के लिए, ls, lpr और grep कमांड।
$ ls -alF $ lpr filename $ grep "string" filename
शेल कमांड से बाहर निकलने की स्थिति
कमांड का रिटर्न वैल्यू इसकी एग्जिट स्टेटस है, या 128 + एन अगर कमांड को सिग्नल एन द्वारा समाप्त किया जाता है। एग्जिट स्टेटस का इस्तेमाल कमांड के निष्पादन के परिणाम (सफलता / विफलता) की जांच के लिए किया जाता है। यदि निकास स्थिति शून्य है, तो आदेश सफलता है। यदि आदेश विफल हो जाता है तो बाहर निकलने की स्थिति शून्य नहीं होगी।
निकास मूल्य | निकास स्थिति |
---|---|
0 (शून्य) | सफल |
शून्य नहीं | विफलता |
2 | गलत उपयोग |
127 | कमांड नहीं मिला |
126 | निष्पादन योग्य नहीं |
$? शैल चर
शेल चर नाम $? एक विशेष बिल्ट-इन वेरिएबल है जिसमें निष्पादित अंतिम कमांड की निकास स्थिति होती है।
- खोल फ़ंक्शन निष्पादन के बाद, $? किसी फ़ंक्शन में निष्पादित अंतिम कमांड की निकास स्थिति लौटाता है।
- खोल स्क्रिप्ट निष्पादन के बाद, $? स्क्रिप्ट में निष्पादित अंतिम कमांड की निकास स्थिति लौटाता है।
शैल-कमांड से बाहर निकलने की स्थिति की व्याख्या करने वाली शैल स्क्रिप्ट का नमूना
निम्नलिखित exitstatus.sh शेल-स्क्रिप्ट विभिन्न शेल-कमांड निकास स्थिति के उदाहरण दिखाता है।
$ cat exitstatus.sh #! /bin/bash echo -e "Successful execution" echo -e "=====================" echo "hello world" # Exit status returns 0, because the above command is a success. echo "Exit status" $? echo -e "Incorrect usage" echo -e "=====================" ls --option # Incorrect usage, so exit status will be 2. echo "Exit status" $? echo -e "Command Not found" echo -e "=====================" bashscript # Exit status returns 127, because bashscript command not found echo "Exit status" $? echo -e "Command is not an executable" echo -e "=============================" ls -l execution.sh ./execution.sh # Exit status returns 126, because its not an executable. echo "Exit status" $?
अब, नमूना शेल स्क्रिप्ट द्वारा दी गई विभिन्न निकास प्रतिमाओं को देखने के लिए ऊपर दिए गए exitstatus.sh को निष्पादित करें।
$ bash exitstatus.sh Successful execution ===================== hello world Exit status 0 Incorrect usage ===================== ls: unrecognized option `--option' Try `ls --help' for more information. Exit status 2 Command Not found ===================== exitstaus.sh: line 15: bashscript: command not found Exit status 127 Command is not an executable ============================= -rw-r--r-- 1 root root 659 Mar 9 13:36 execution.sh exitstatus.sh: line 21: ./execution.sh: Permission denied Exit status 126
नोट:किसी फ़ंक्शन या कमांड के रिटर्न वैल्यू की जांच करना प्रोग्रामर की मुख्य जिम्मेदारी में से एक है। कोई भी कोड लिखते समय यह आपका दूसरा स्वभाव बन जाना चाहिए।
<केंद्र> केंद्र>