ব্যাশে, আমি লক্ষ্য করেছি যে পুনঃনির্দেশ ব্যবহার করে যদি কোনও কমান্ড ব্যর্থ হয় তবে এর আগে চলমান কোনও প্রোগ্রাম চালানো হয় না।
উদাহরণস্বরূপ, এই প্রোগ্রামটি "a" ফাইলটি খুলবে এবং "এ" ফাইল করার জন্য 50 বাইট লিখবে। তবে, এই কমান্ডটি অপর্যাপ্ত অনুমতি () রুট / লগ) সহ কোনও ফাইলে পুনঃনির্দেশ সহ চালানো "আ" ফাইলের আকারে কোনও পরিবর্তন আনবে না।
$ ./write_file.py >> ~root/log
-bash: /var/root/log: Permission denied
cdal at Mac in ~/experimental/unix_write
$ ls -lt
total 16
-rw-rw-r-- 1 cdal staff 0 Apr 27 08:54 a <-- SHOULD BE 50 BYTES
কেউ মনে করতে পারে যে প্রোগ্রামটি চলবে, যে কোনও আউটপুট ক্যাপচার করবে (তবে "a" ফাইলটি লিখবে) এবং তারপরে কোনও আউটপুট ~ রুট / লগতে লিখতে ব্যর্থ হবে। পরিবর্তে প্রোগ্রামটি কখনও চালিত হয় না।
এটি কেন, এবং কোনও প্রোগ্রাম কার্যকর করার আগে বাশ কীভাবে "চেক" এর ক্রমটি সম্পাদন করে তা চয়ন করে? অন্যান্য চেকগুলিও কি সম্পাদিত হয়?
পিএস আমি নির্ধারণ করার চেষ্টা করছি যে ক্রোন অধীনে কোনও প্রোগ্রাম চলমান আসলে "অনুমতি অস্বীকৃত" ফাইলটিতে পুনর্নির্দেশের সময় চালিত হয়েছিল কিনা।
write_file.py
প্রোগ্রামটি চালান এবং এর আউটপুট ~root/log
ব্যাশে প্রেরণ করুন :" দুঃখিত, তবে আপনাকে সেই ফাইলটিতে লেখার অনুমতি নেই! "শেলটি ঠিক যা করা উচিত তা করছে it যদি আপনি এটি যা বলেছিলেন তা যদি এটি না করতে পারে তবে করুন, এটি তাত্ক্ষণিকভাবে আপনাকে কেন তা সমস্যা সমাধানের সিদ্ধান্ত নেওয়ার সুযোগ দেয় এবং এটি কীভাবে মোকাবেলা করতে হবে তা আপনাকে অবহিত করে। এটি সংরক্ষণের জন্য আপনি যদি জায়গা নির্ধারণের জন্য যথেষ্ট পরিমাণে গুরুত্বপূর্ণ হন তবে এটিএসএস | ইউ | আমার পক্ষে ভুল হবে স্টাডাউট সংরক্ষণ না করে চালানো ঠিক ছিল
stdout
ঠিক তা করতে আপনাকে পুনর্নির্দেশ করেছেন । সুতরাং, আপনার প্রোগ্রামটি চললেও আপনি কোনও আউটপুট দেখতে পাবেন না।