"</ Dev / নাল" এর অর্থ কী?


16

আমি বুঝেছি এমন > /dev/nullজিনিসগুলিকে পুনর্নির্দেশ করে /dev/nullযা কোনও ব্ল্যাকহোলের মতো কাজ করে। তবে আমি এর < /dev/nullঅর্থ বুঝতে পারি না । আমি কিছু স্ক্রিপ্ট লিখেছি দেখেছি:

nohup myprogram > foo.out 2> foo.err < /dev/null &

সুতরাং, < /dev/nullউপরের কোডটির অর্থ কী?

এটি প্রস্তাবিত যেখানে একটি উদাহরণ এখানে


উত্তর:


19

এটি নিশ্চিত করে যে সমস্ত আই / ও স্ট্রিমের জন্য / দখল করা হয়েছে।

এইভাবে, ব্যাকগ্রাউন্ড প্রক্রিয়াটির টার্মিনালের সাথে "বাঁধা" কিছুই নেই তাই আপনি টিটিওয়াই থেকে পড়ার চেষ্টা না করে আপনার প্রোগ্রামটি ছাড়া আপনার ব্যবসায়ের দিকে যেতে পারেন, যার ফলে টার্মিনালটি স্তব্ধ হয়ে যায়।

এই ক্ষেত্রে, যেহেতু আপনি শেল স্ক্রিপ্ট থেকে ssh এর মাধ্যমে প্রক্রিয়াটি চালু করছেন, এটি নিশ্চিত করছে যে স্ক্রিপ্টটি শৃঙ্খলাবিহীনভাবে সরানো যেতে পারে।


এটি কি ধরে নিয়েছে যে মাইপ্রোগ্রামটি কিছু ইনপুট নেয়, তবে এই ক্ষেত্রে এটি মাইপোগ্রামকে ইনপুট হিসাবে কিছুই খাওয়ায় না?
কিয়ান চেন

ধন্যবাদ। আমি বাদে বাকি সব বুঝি < /dev/null
কিয়ান চেন

সুতরাং কোড এবং একই কোড ছাড়া পার্থক্য কি < /dev/null?
কিয়ান চেন

আমি আসলে এখান থেকে কোডটি পড়েছি: স্ট্যাকওভারফ্লো
কিয়ান চেন

2
আনন্দিত এটি সাহায্য! দৌড়াদৌড়ি সম্পর্কে দুঃখিত; প্রসঙ্গ যদিও সাহায্য করেছে, ধন্যবাদ! - পার্শ্ব দ্রষ্টব্য: আমি আমার মন্তব্যগুলির একগুচ্ছ এক বা দুই মিনিটের মধ্যে মুছে ফেলব, এখন যে জিনিসগুলি খালি করে দেওয়া হয়েছে, এটি অন্য যে কেউ তা দেখে বিভ্রান্ত দেখাচ্ছে
ব্যবহারকারী 3276552

12

program </dev/nullএর অর্থ এই যে programফাইলটি থেকে ফাইল বর্ণনাকারী 0 অর্থাৎ এসটিডিআইএন এর মাধ্যমে তার ইনপুট আর্গুমেন্টটি (কোনও বিকল্পের ইনপুট প্যারামিটার হতে পারে বা কাজ করতে ইনপুট ফাইল হতে পারে) /dev/null

আপনি ইতিমধ্যে জানেন যে /dev/nullকিছুই নেই, এটি ইওএফ (ফাইলের সমাপ্তি) পড়ার পরে অবহিত করবে সুতরাং যে কোনও প্রোগ্রাম থেকে ইনপুট গ্রহণ করা /dev/nullমূলত কোনও কিছুই তার ইনপুট আর্গুমেন্ট হিসাবে পুনর্নির্দেশ করবে।


তাহলে কি কেবল ছাড়ার মত কোনও তফাত আছে < /dev/null? এটিকে কেবল লিখুনnohup myprogram > foo.out 2> foo.err &
কিয়ান চেন

1
@ এলজ কিউইনচেন এটি আপনার উপর নির্ভর করে program.. এটি কীভাবে এসটিডিএন হিসাবে চায়? কিছু প্রোগ্রাম এটিকে বাধ্যতামূলক করে তুলতে পারে এজন্য আপনাকে STDIN হিসাবে কিছু স্থাপন করা দরকার, আপনি এখানে /dev/nullSTDIN হিসাবে ব্যবহার করেছেন এবং প্রোগ্রামটিকে প্রসেসিং করতে দিন এবং উল্লিখিত ফাইলগুলিতে STDOUT এবং STDERR রাখুন ..
হিমাইল

সুতরাং এটি কার্যকরভাবে কোনও ইনপুট প্রক্রিয়াটি আটকাতে বাধা দেয় এবং কেবল কোনও ইনপুট অনুরোধকে কিছুই দেয় না?
কিয়ান চেন

1
@ এলজসকিউনচেন এটি ফাইল বর্ণনাকারী 0 অর্থাৎ এসটিডিএন ব্লক করে দেবে যাতে আপনি এর মাধ্যমে আর কোনও ইনপুট পাস করতে পারবেন না..আপনার কাছ থেকে ইনপুট নেওয়ার জন্য অন্য কোনও এফডি কনফিগার করা না থাকলে প্রোগ্রামটিতে আর কোনও ইনপুট দিতে পারবেন না ..
হিমাইল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.