আসুন বলি যে একটি প্রোগ্রাম বিদ্যমান, যা দুটি যুক্তি গ্রহণ করে; ইনপুট ফাইল এবং আউটপুট ফাইল।
আমি যদি এই আউটপুট ফাইলটি ডিস্কে সংরক্ষণ করতে না চাই, তবে এটি সরাসরি stdin
অন্য কোনও প্রোগ্রামে দিয়ে দিন। এই অর্জন করার জন্য একটি উপায় আছে কি?
আমি লিনাক্সে প্রচুর কমান্ড পেয়েছি আউটপুট ফাইল আর্গুমেন্ট হিসাবে '-' পাস করার একটি বিকল্প সরবরাহ করে, যা আমি উপরে উল্লিখিত হিসাবে কাজ করে। এটি কি কারণ stdin
কোনও প্রোগ্রামকে তর্ক হিসাবে পাস করা সম্ভব নয়? যদি তা হয় তবে আমরা কীভাবে এটি করব?
আমি কীভাবে এটি ব্যবহার করে চিত্র করব তার একটি উদাহরণ:
pdftotext "C BY BRIAN W KERNIGHAN & DENNIS M RITCHIE.pdf" stdin(echo)
আমি যে শেলটি ব্যবহার করছি তা বাশ ash
cat < README.txt | cp /dev/fd/0
। এটি বলেছিলcp: missing destination file operand after ‘/dev/fd/0’ Try 'cp --help' for more information.
program input-file /dev/stdout | another-program
? এছাড়াও নোট করুন যে echo
স্টিডিন থেকে কিছুই পড়েনা।
cp
কোথাও একটি ফাইল করতে পারবেন না । echo 1 2 3| cp /dev/fd/0 /dev/tty
মুদ্রণ করবে 1 2 3
। এবং /dev/fd/[num]
যাইহোক /dev/std(in|out|err)
, বেশিরভাগ ক্ষেত্রে তুলনায় কাজ করার সম্ভাবনা বেশি । আপনি কোথায় কাজ করতে পারবেন সে সম্পর্কে ফাইল-বর্ণনাকারীর লিঙ্কগুলি দেখুন ।
cat <file | cmd /dev/fd/0
বেশিরভাগ unices কাজ করে।