যে কেউ আমাকে শূন্য ব্যতীত আরএম-আরফ কমান্ডের জন্য সম্ভাব্য রিটার্ন কোডগুলি, ব্যর্থতার ক্ষেত্রে সম্ভাব্য রিটার্ন কোডগুলি জানতে পারে। কমান্ডটি ব্যর্থ হওয়ার আরও বিস্তারিত কারণ জানতে চাই, কেবল কমান্ড ব্যর্থ হয়েছে (0 ব্যতীত অন্যটি ফিরে আসুন)।
যে কেউ আমাকে শূন্য ব্যতীত আরএম-আরফ কমান্ডের জন্য সম্ভাব্য রিটার্ন কোডগুলি, ব্যর্থতার ক্ষেত্রে সম্ভাব্য রিটার্ন কোডগুলি জানতে পারে। কমান্ডটি ব্যর্থ হওয়ার আরও বিস্তারিত কারণ জানতে চাই, কেবল কমান্ড ব্যর্থ হয়েছে (0 ব্যতীত অন্যটি ফিরে আসুন)।
উত্তর:
রিটার্ন কোডটি দেখতে, আপনি echo $?
ব্যাশে ব্যবহার করতে পারেন ।
আসল অর্থটি দেখতে, কিছু প্ল্যাটফর্মের (যেমন ডেবিয়ান লিনাক্স) perror
বাইনারি উপলব্ধ রয়েছে, যা নিম্নলিখিত হিসাবে ব্যবহার করা যেতে পারে:
$ rm -rf something/; perror $?
rm: cannot remove `something/': Permission denied
OS error code 1: Operation not permitted
rm -rf
স্বয়ংক্রিয়ভাবে বেশিরভাগ ত্রুটি দমন করে। আপনি সম্ভবত সবচেয়ে সম্ভবত ত্রুটিটি দেখতে পাবেন 1
(অপারেশনটির অনুমতি নেই), যা যদি আপনার ফাইলটি সরানোর অনুমতি না দেয় তবে ঘটবে। -f
ইচ্ছাকৃতভাবে বেশিরভাগ ত্রুটি দমন করে
perror
। আমার সিস্টেমে এটি মাইএসকিএল দিয়ে চালিত হয়।
strace
আপনি বলে যদি একটি সিস্টেম কল ব্যর্থ হওয়া, কিন্তু আপনারা যদি না উৎস তাকান আপনি জানেন না কিভাবে প্রাপ্ত syscall প্রোগ্রাম থেকে প্রস্থানের অবস্থা সম্পর্কিত (উদাহরণস্বরূপ, যদি আপনি চালানোর -f
, ENOENT
চাপা হয় না)। সুতরাং এটি এখানে প্রাসঙ্গিক নয়
গিট থেকে কোর্টিলগুলি ধরেছে ...
বাহিরের দিকে তাকিয়ে আমরা দেখতে পাই ...
openfly@linux-host:~/coreutils/src $ cat rm.c | grep -i exit
if (status != EXIT_SUCCESS)
exit (status);
/* Since this program exits immediately after calling 'rm', rm need not
atexit (close_stdin);
usage (EXIT_FAILURE);
exit (EXIT_SUCCESS);
usage (EXIT_FAILURE);
error (EXIT_FAILURE, errno, _("failed to get attributes of %s"),
exit (EXIT_SUCCESS);
exit (status == RM_ERROR ? EXIT_FAILURE : EXIT_SUCCESS);
এখন স্ট্যাটাস ভেরিয়েবলের দিকে তাকিয়ে ....
openfly@linux-host:~/coreutils/src $ cat rm.c | grep -i status
usage (int status)
if (status != EXIT_SUCCESS)
exit (status);
enum RM_status status = rm (file, &x);
assert (VALID_STATUS (status));
exit (status == RM_ERROR ? EXIT_FAILURE : EXIT_SUCCESS);
দেখে মনে হচ্ছে প্রস্থান স্থিতি নিয়ে সেখানে খুব একটা চলছে না।
আমি EXIT_FAILURE এবং EXIT_SUCCESS দেখছি এবং অন্য কিছু নয়।
সুতরাং মূলত 0 এবং 1 / -1
নির্দিষ্ট প্রস্থান () সিস্কেলগুলি দেখতে এবং প্রক্রিয়া প্রবাহে কীভাবে ঘটে তা দেখুন এটি ব্যবহার করে দেখুন
openfly@linux-host:~/ $ strace rm -rf $whatever
মোটামুটি সহজ।
সুত্র:
0 / >0
।
I want to know more detailed reason for the failure of the command unlike just the command is failed(return other than 0)
সুতরাং নীচের ভোটগুলি বোধগম্য।
if (!(flags & FILEUTILS_FORCE)) {
যুক্ত করার জন্য else{printf("same error message as perror");}
আমি নিশ্চিত যে অন্যান্য বাস্তবায়নগুলি হবে অনুরূপ হতে পারে, তবে ব্যস্তবক্সের সংস্করণটি নিজেরাই তৈরি করা এবং অন্তর্ভুক্ত করা যেতে পারে।
man ls
উবুন্টুতে থাকেন তবে এটি ননজারো প্রস্থান স্থিতির কারণ ব্যাখ্যা করে