$ से वापसी मूल्य 127 का अर्थ क्या है? UNIX में।
$ से वापसी मूल्य 127 का अर्थ क्या है? UNIX में।
जवाबों:
/bin/sh
जब आपके PATH
सिस्टम वैरिएबल के भीतर दिए गए कमांड नहीं मिलते हैं और यह बिल्ट-इन शेल कमांड नहीं है, तो वैल्यू 127 वापस कर दिया जाता है । दूसरे शब्दों में, सिस्टम आपकी कमांड को नहीं समझता है, क्योंकि यह नहीं पता है कि आप जिस बाइनरी को कॉल करने की कोशिश कर रहे हैं उसे कहां से मिलेगा।
which [program]
देखने की कोशिश कर सकते हैं कि ओएस किस बाइनरी का उपयोग कर रहा है। यदि यह खाली हो जाता है, तो अगला कदम निष्पादन बिट और पैट की जांच कर रहा है।
which
विशेष रूप से सटीक नहीं है - यह उपनाम, शेल फ़ंक्शंस, PATH लुकअप मेमोएज़ेशन, या शेल को आंतरिक अन्य कारकों के बारे में नहीं जानता है। उपयोग करने के लिए बेहतर है type
, एक शेल बिलिन जो उन सभी चीजों के बारे में जानता है।
126
( Permission denied
), न कि 127
जब मैं एक गैर-निष्पादन योग्य फ़ाइल (इसकी सामग्री के बावजूद) को लागू करने का प्रयास करता हूं; इसी तरह, निर्देशिका को निष्पादित करने का प्रयास भी परिणाम 126
( is a directory
) में होता है।
शेल कन्वेंशन यह है कि एक सफल निष्पादन योग्य मूल्य के साथ बाहर निकलना चाहिए। 0. किसी भी चीज को किसी प्रकार की विफलता के रूप में व्याख्या किया जा सकता है, बैश के हिस्से पर या निष्पादन योग्य जिसे आप बस चलाते हैं। बश मैन पेज पर $ PIPESTATUS और EXIT STATUS अनुभाग भी देखें :
For the shell’s purposes, a command which exits with a zero exit status has succeeded. An exit status of zero indicates success. A non-zero exit status indicates failure. When a command terminates on a fatal signal N, bash uses the value of 128+N as the exit status.
If a command is not found, the child process created to execute it returns a status of 127. If a com-
mand is found but is not executable, the return status is 126.
If a command fails because of an error during expansion or redirection, the exit status is greater than
zero.
Shell builtin commands return a status of 0 (true) if successful, and non-zero (false) if an error
occurs while they execute. All builtins return an exit status of 2 to indicate incorrect usage.
Bash itself returns the exit status of the last command executed, unless a syntax error occurs, in
which case it exits with a non-zero value. See also the exit builtin command below.
इसका कोई विशेष अर्थ नहीं है, इसके अलावा बाहर निकलने की अंतिम प्रक्रिया ने 127 की निकास स्थिति के साथ ऐसा किया।
हालाँकि, इसका उपयोग bash द्वारा किया जाता है (यह मानते हुए कि आप bash का उपयोग शेल के रूप में कर रहे हैं) आपको यह बताने के लिए कि जिस कमांड को आपने निष्पादित करने की कोशिश की थी, उसे निष्पादित नहीं किया जा सकता है (यानी यह नहीं मिल सकता है)। यह दुर्भाग्य से तुरंत समर्पण नहीं है, अगर प्रक्रिया 127 की स्थिति से बाहर निकलती है, या यदि यह नहीं मिला।
संपादित करें:
कंसोल पर आउटपुट को छोड़कर तुरंत समर्पण नहीं है, लेकिन यह स्टैक ओवरफ्लो है, इसलिए मुझे लगता है कि आप यह एक स्क्रिप्ट में कर रहे हैं।
यह त्रुटि कई बार धोखा देने वाली भी होती है। यह कहता है कि फ़ाइल वास्तव में मौजूद होने के बावजूद फ़ाइल नहीं मिली है। यह उन अमान्य अपठनीय विशेष वर्णों के कारण हो सकता है जो फाइलों में मौजूद हैं जो आपके द्वारा उपयोग किए जा रहे संपादक के कारण हो सकते हैं। यह लिंक ऐसे मामलों में आपकी मदद कर सकता है।
-बेश: ./my_script: / bin / bash ^ M: bad दुभाषिया: ऐसी कोई फ़ाइल या निर्देशिका नहीं
यह पता लगाने का सबसे अच्छा तरीका है कि क्या यह समस्या है, पूरी फाइल में एक गूंज स्टेटमेंट को सरल जगह पर रखना है और यह सत्यापित करना है कि क्या एक ही त्रुटि है।
यदि आप स्क्रिप्टिंग भाषा का उपयोग करके कोई प्रोग्राम चलाने का प्रयास कर रहे हैं, तो आपको स्क्रिप्टिंग भाषा का पूरा पथ और निष्पादित करने के लिए फ़ाइल शामिल करना पड़ सकता है । उदाहरण के लिए:
exec('/usr/local/bin/node /usr/local/lib/node_modules/uglifycss/uglifycss in.css > out.css');
अगर आईबीएम मेनफ्रेम जेसीएल में यूनिक्स स्क्रिप्ट के नाम के अंत में कुछ अतिरिक्त वर्ण या संख्याएं हैं तो इसे ऐसी त्रुटि कहा जा सकता है।