সমস্যাটি লিঙ্কযুক্ত নিবন্ধে ব্যবহৃত সিনট্যাক্সের মধ্যে রয়েছে। ঠিক কী ভুল হয় তা বোঝার জন্য আসুন একবার দেখে নেওয়া যাক man wall:
এর থেকে ব্যবহার man wall:
wall [file]
Wall displays the contents of file or, by default, its standard input
সুতরাং এর বার্তার জন্য দুটি উত্সের মধ্যে দুটিই wallগ্রহণ করে ।
ফাইল নামের যুক্তি
প্রদত্ত যে কোনও কমান্ড লাইন আর্গুমেন্টের wallএকটি ফাইলের নাম হতে হবে। যুক্তিটি বার্তা বা ফাইলের নাম হিসাবে বোঝানো হয়েছে কিনা তা বলার কোনও নির্ভরযোগ্য উপায় না wallথাকায় এটি পরবর্তীকালে ধরে নেওয়া হবে, স্ট্যান্ডার্ড ইনপুটটিতে আসা কোনও কিছুকে উপেক্ষা করবেন এবং সেই ফাইলটি থেকে বার্তাটি পড়ার চেষ্টা করবেন।
প্রদত্ত ক্ষেত্রে এটি ফাইল থেকে পড়ার চেষ্টা করে who's out thereএবং এটি খুঁজে পায় না। নোট করুন যে কোনও ফাইল থেকে পড়া সাধারণত সুপারসারের মধ্যে সীমাবদ্ধ থাকে। আপনি যদি কোনও wall "who's out there"অনিবদ্ধ ব্যবহারকারী হিসাবে মৃত্যুদন্ড কার্যকর করতেন তবে সম্ভবত এর ফলাফলটি হত,wall: will not read who's out there - use stdin.
স্ট্যান্ডার্ড ইনপুট
যদি এটির কমান্ড লাইনে কোনও ফাইল নামের যুক্তি না পায় তবে এটি স্ট্যান্ডার্ড ইনপুট থেকে পড়া শুরু করবে। কমান্ডের স্ট্যান্ডার্ড ইনপুটটিতে তথ্য ফিড করার বিভিন্ন উপায় রয়েছে। একটি হ'ল ইউনিক্স পাইপ ব্যবহার করা । একটি পাইপলাইন তার বাম দিকের সাইড কমান্ডের স্ট্যান্ডার্ড আউটপুটটিকে তার ডানহাইড-সাইড কমান্ডের স্ট্যান্ডার্ড ইনপুটটির সাথে সংযুক্ত করবে:
$ echo "who's out there" | wall
অন্য উপায় হ'ল এখানে নথি ব্যবহার করা । এ here documentহ'ল শেল কনস্ট্রাক্ট যা একটি স্ট্রিং (তার নিজস্ব লাইনে নির্দিষ্ট প্রান্ত চিহ্নিতকারী অবধি) সরাসরি কমান্ডের স্ট্যান্ডার্ড ইনপুটটিতে চলে যায়, একটি পৃথক কমান্ডের মধ্যবর্তী পদক্ষেপ ছাড়াই আউটপুট উত্পাদন করে:
$ wall << .
who's out there?
.
এটি "এখানে দলিলগুলির অকেজো ব্যবহার" হবে, কারণ ডিফল্টরূপে টার্মিনালটি স্বয়ংক্রিয় wallস্ট্যান্ডার্ড ইনপুটটির সাথে সংযুক্ত wallথাকবে এবং যতক্ষণ না এটি ফাইলের শেষের অক্ষর ( Ctrl+D) প্রাপ্ত করে ততক্ষণ থেকে এটি পড়া শুরু করবে :
$ wall
who's out there?
^D
সমৃদ্ধ হোমোলকা মন্তব্যে যেমন উল্লেখ করেছেন, কিছু শাঁস সমর্থন করে here stringsযা কমান্ড বা শেষ চিহ্ন ছাড়াই আক্ষরিক স্ট্রিং পাস করতে দেয়:
$ wall <<< "who's out there?"
সমস্ত কিছু wallস্ট্যান্ডার্ড ইনপুটটিতে কিছু খাওয়ায় । পার্থক্য হ'ল একটি পাইপলাইন অন্য কমান্ডের আউটপুটটিকে এর সাথে সংযুক্ত করে, here documentsএবং here stringsসরাসরি স্ট্রিংটি পাস করে। এখানে দ্বিতীয়টির সুবিধাটি একটি নান্দনিক, কারণ echoপাইপের উদাহরণ থেকে প্রাপ্ত আদেশটি শেল অন্তর্নির্মিত কমান্ড, সুতরাং এটি wallসমস্ত ক্ষেত্রে শেলটির ইনপুট সরবরাহ করবে ।
echo xxx | yyyবাক্সwall <<<'your message'