Return থেকে 127 ফেরতের মানটির অর্থ কী? ইউনিক্সে।
Return থেকে 127 ফেরতের মানটির অর্থ কী? ইউনিক্সে।
উত্তর:
/bin/sh
প্রদত্ত কমান্ডটি যখন আপনার PATH
সিস্টেমের ভেরিয়েবলের মধ্যে না পাওয়া যায় এবং এটি কোনও অন্তর্নির্মিত শেল কমান্ড না হয় তখন 127 মানটি ফিরে আসে । অন্য কথায়, সিস্টেমটি আপনার কমান্ড বুঝতে পারে না, কারণ আপনি যে বাইনারিটি কল করার চেষ্টা করছেন তা কোথায় তা খুঁজে পাওয়া যায় না।
which [program]
ওএস কোন বাইনারি ব্যবহার করছে তা দেখার জন্য আপনি চেষ্টা করতে পারেন। যদি এটি খালি উঠে আসে, পরবর্তী পদক্ষেপে এক্সিকিউশন বিট এবং PATH পরীক্ষা করা হচ্ছে।
which
বিশেষভাবে সঠিক নয় - এটি এলিয়াস, শেল ফাংশন, প্যাথ লুক লুকিং মেমোজাইজেশন, বা শেল স্টেটের অভ্যন্তরীণ অন্যান্য কারণগুলির সম্পর্কে জানে না। ব্যবহার করা আরও ভাল type
, একটি শেল বিল্টিন যা এই সমস্ত সম্পর্কে জানে।
126
( Permission denied
) 127
পাই না, যখন আমি অ-এক্সিকিউটেবল ফাইল (সেগুলির বিষয়বস্তু নির্বিশেষে) আহ্বান করার চেষ্টা করি না ; একইভাবে, একটি ডিরেক্টরি চালানোর চেষ্টাও ফলাফল 126
( is a directory
)।
একটি শেল কনভেনশন হ'ল সফল এক্সিকিউটেবলের মান 0 দিয়ে প্রস্থান করা উচিত অন্য কোনও কিছুর অর্থ বাশ বা আপনি যে চালানো এক্সিকিউটেবলের জন্য চালিয়ে গেছেন তা কোনও ধরণের ব্যর্থতা হিসাবে ব্যাখ্যা করা যেতে পারে। এছাড়াও দেখুন IP পাইপস্ট্যাটাস এবং ব্যাশ ম্যান পৃষ্ঠার এক্সিট স্ট্যাটাস বিভাগ:
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 এর প্রস্থান স্থিতি দিয়ে এটি করেছিল did
তবে, এটি বাশ দ্বারাও ব্যবহৃত হয় (ধরে নিলেন আপনি বাশকে শাঁস হিসাবে ব্যবহার করছেন) ধরে নিতে আপনি যে কমান্ডটি কার্যকর করার চেষ্টা করেছিলেন তা কার্যকর করা যায় নি (অর্থাত এটি পাওয়া যায়নি)। এটি দুর্ভাগ্যক্রমে যদিও অবিলম্বে ছাড়ের যোগ্য নয়, যদি প্রক্রিয়াটি 127 স্থিতি দিয়ে উপস্থিত থাকে বা এটি খুঁজে না পাওয়া যায়।
সম্পাদনা:
কনসোলে আউটপুট ব্যতীত অবিলম্বে ছাড়যোগ্য নয়, তবে এটি স্ট্যাক ওভারফ্লো, সুতরাং আমি ধরে নিই যে আপনি এটি কোনও স্ক্রিপ্টে করছেন।
এই ত্রুটিটিও মাঝে মাঝে প্রতারণা করে। এটি বলে যে ফাইলগুলি প্রকৃতপক্ষে উপস্থিত থাকলেও ফাইল খুঁজে পাওয়া যায় না। এটি আপনার ব্যবহারকারীর সম্পাদকের কারণে হতে পারে এমন ফাইলগুলিতে অবৈধ অপঠনযোগ্য বিশেষ অক্ষরগুলির কারণ হতে পারে। এই লিঙ্কটি আপনাকে এ জাতীয় ক্ষেত্রে সহায়তা করতে পারে।
-বাশ: ./my_script: / bin / bash ^ M: খারাপ দোভাষী: এরকম কোনও ফাইল বা ডিরেক্টরি নেই
এটি এই সমস্যাটি কিনা তা জানার সর্বোত্তম উপায় হ'ল সম্পূর্ণ ফাইলটিতে একটি প্রতিধ্বনি বিবরণ রাখা এবং একই ত্রুটি নিক্ষেপ করা হয়েছে কিনা তা যাচাই করা।
আপনি যদি কোনও স্ক্রিপ্টিং ভাষা ব্যবহার করে কোনও প্রোগ্রাম চালানোর চেষ্টা করছেন, আপনার সম্পাদনার জন্য স্ক্রিপ্টিং ভাষার পুরো পথ এবং ফাইল অন্তর্ভুক্ত করতে হতে পারে। উদাহরণ স্বরূপ:
exec('/usr/local/bin/node /usr/local/lib/node_modules/uglifycss/uglifycss in.css > out.css');
আইবিএম মেইনফ্রেম জেসিএলের যদি ইউনিক্স স্ক্রিপ্টের নাম শেষে ডাকা শেষে কিছু অতিরিক্ত অক্ষর বা সংখ্যা থাকে তবে এটি ত্রুটি ফেলে দিতে পারে।