খালি <কি করে?


10

bash আপনি যদি কোনও কমান্ড চালনা করেন তবে অভিযোগ করার কথা মনে হচ্ছে না

$ < some-file-that-exists

কিছুই হচ্ছে বলে মনে হচ্ছে না।

আপনি ব্যবহার করতে পারে

$ <<<"any string"

এমনকি প্রক্রিয়া প্রতিস্থাপন।

সুতরাং এটি ঠিক কী করে এবং কেন এটি অনুমোদিত। এটি কি কোনও কিছুর জন্য কার্যকর হতে পারে?


বিটিডাব্লু: দুর্দান্ত জেডএসএইচের জন্য, "<foobar" "কম ফুবার" এর সমান, যেমন আপনার শূলে ফুবার পুনঃনির্দেশ করে। আমি মনে করি এটি বেশ স্বজ্ঞাত আচরণ। একটি খালি <আপনাকে ত্রুটি দেবে ( zsh: parse error near `\n') যেমন কোনও যুক্তি দেওয়া হয়নি।
গণিত

@ আপনি একই ধরণের ত্রুটি পাবেন bashতবে এটি আকর্ষণীয় less
বিস্ফোরণ বড়ি

উত্তর:


20

<পুনর্নির্দেশের নির্দেশাবলীর আগে বা পরে যে কমান্ডটি ঘটতে পারে তার জন্য পুনঃনির্দেশ সেট আপ করে। অর্থাত

$ < file wc

পাশাপাশি কাজ করে

$ wc < file

তবে আপনি যদি কোনও আদেশ না দেন, বাশ পুনঃনির্দেশটি সেট আপ করে এবং অন্য কিছু করে না। ইনপুট পুনঃনির্দেশের জন্য, এটি ফাইলের উপস্থিতি এবং পাঠযোগ্য if যদি ফাইলটি বিদ্যমান না থাকে বা পাঠযোগ্য না হয় বাশ একটি ত্রুটির সংকেত দেবে। আউটপুট পুনর্নির্দেশের জন্য, যদি এটি বিদ্যমান না থাকে তবে আউটপুট ফাইল তৈরি করা হবে। যে কোনও বিদ্যমান আউটপুট ফাইল >ব্যবহার করা হলে কেটে যাবে ; যদি >>ব্যবহার করা হয় তবে কোন কাটা কাটা হবে না ।


অন্য কথায় এগুলি একটি সংক্ষিপ্ত বিদ্যমান এবং তৈরি করুন
র‌্যাচেট ফ্রিক

@ কাইল জোন্স আমার মনে হয় আপনি শেষ বাক্যে দুটি অপারেটরের সাথে মেলে না।
জেমসবেটেট

@ পুডিংফক্স ধন্যবাদ আমি স্পষ্ট করার জন্য রান-অন বাক্যটি সম্পাদনা করেছি।
কাইল জোন্স

< file wcবনাম ব্যবহার করার কোনও কারণ আছে কি wc < file?
বিস্ফোরণ বড়ি

1
@ ফান্ডু ইন্টারেক্টিভ শেল ব্যবহার করার সময় এটি কার্যকর হয়। বলুন যে আপনার কাছে একটি কমান্ড রয়েছে যা পুনঃনির্দেশ ব্যবহার করে এবং আপনি এটি একটি ভিন্ন শেষ যুক্তির মাধ্যমে পুনরাবৃত্তি করতে চান। যদি পুনঃনির্দেশটি লাইনের শুরুতে থাকে, তবে কন্ট্রোল-পি টাইপ করা সহজ এবং তারপরে "<foo> বার 2> & 1" ভাষাটি বাদ না দিয়ে শেষ যুক্তিটি সম্পাদনা করুন আপনি যদি শেষের দিকে থাকতেন। এর বাইরেও আমি এর কোন ব্যবহার খুঁজে পাইনি।
কাইল জোন্স 19 'এ

5

<স্ট্যান্ডিন থেকে ডিফল্টরূপে বা কোনও ফাইল পড়ে। আপনার অভিব্যক্তি ইনপুটটির সাথে কিছু করে না কারণ আপনি পড়ার পরে কোনও কিছু করেননি।

আপনি যদি শেষের দিকে <কিছু-ফাইল-যা-উপস্থিত> আউটপুটফাইল করেন, তবে আপনি দেখতে পাবেন যে আপনি সবেমাত্র প্রথম ফাইলের সামগ্রীটি পড়েছেন এবং এটি দ্বিতীয় ফাইলে লিখেছেন wrote

<<< এখানে ডক ফর্ম্যাট, সুতরাং এটি কোনও ফাইলের পরিবর্তে স্ট্রিং থেকে পড়ে। বিড়াল <<< আপনি যা পড়েছেন তা দেখতে "কোনও স্ট্রিং"।


2
ভবিষ্যতের রেফারেন্সের জন্য, দয়া করে কোনও মন্তব্য যুক্ত করার পরিবর্তে বিশদ যুক্ত করতে আপনার উত্তর সম্পাদনা করুন
নেট কোপ্পেনহেভার

2
"আপনি যদি শেষের দিকে <কিছু-ফাইল-যা-উপস্থিত> আউটপুটফাইল করেন তবে আপনি দেখতে পাবেন যে আপনি সবে প্রথম ফাইলের সামগ্রীটি পড়েছেন এবং দ্বিতীয় ফাইলটিতে লিখেছেন।" এটা ভুল; কমান্ড ব্যতীত আউটপুট ফাইলটি শূন্য বাইটে কাটা হবে।
কাইল জোন্স
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.