আমি কমান্ডটি -nব্যবহার করে মুদ্রণের চেষ্টা করছি echo। তবে আমি যদি সহজভাবে টাইপ করি তবে echo -nএটি কেবল একটি নতুন লাইন জারি করে, প্রদর্শিত হবে না -n, পরিবর্তে এটি একটি নতুন লাইন জারি করে।
getoptকমান্ড লাইনটি পার্স করতে (???) ব্যবহার করছে না
আমি কমান্ডটি -nব্যবহার করে মুদ্রণের চেষ্টা করছি echo। তবে আমি যদি সহজভাবে টাইপ করি তবে echo -nএটি কেবল একটি নতুন লাইন জারি করে, প্রদর্শিত হবে না -n, পরিবর্তে এটি একটি নতুন লাইন জারি করে।
getoptকমান্ড লাইনটি পার্স করতে (???) ব্যবহার করছে না
উত্তর:
সমস্যাটি হ'ল আর্গুমেন্ট হিসাবে echoব্যাখ্যা করে -n। ডিফল্ট বাশ প্রয়োগে, এর অর্থ (থেকে help echo):
-n do not append a newline
এটি প্রায় বিভিন্ন উপায় আছে:
এটিকে এমন কোনও কিছুতে পরিণত করুন যা অন্য চরিত্রটি অন্তর্ভুক্ত করে কোনও বিকল্প নয়। উদাহরণস্বরূপ, এর echoসাথে একটি নতুন লাইন প্রিন্ট না করতে বলুন -n, তারপরে ব্যাকস্ল্যাশ পলায়নের সাথে ব্যাখ্যা করতে বলুন -eএবং স্পষ্টভাবে নিউলাইন যুক্ত করুন।
$ echo -ne '-n\n'
-nবিকল্পভাবে, কেবল একটি স্থান অন্তর্ভুক্ত করুন
$ echo " -n"
-n
এটি তবে একটি স্থান যুক্ত করেছে যা আপনি সম্ভবত চান না।
এর আগে একটি মুদ্রণবিহীন অক্ষর ব্যবহার করুন। এখানে. আমি ব্যাকস্পেস ব্যবহার করছি ( \b)
$ echo -e "\b-n"
-n
এটি সম্ভবত আপনি চান না এমন একটি অতিরিক্ত চরিত্রও যুক্ত করে।
কৌতুক ব্যবহার করুন
$ echo n- | rev
-n
revকমান্ড কেবল ছাপে তার আউটপুট বিপরীত।
ব্যবহার করুন কাজের জন্য ডান টুল
$ printf -- '-n\n'
-ngrep '^-n'। pritnfসত্যিই যাওয়ার উপায়।
printfযাইহোক ভাল, কিন্তু প্রশ্নটি ন্যায়সঙ্গত echo।
echo -e "-n\c"ঠিক কাজটি করে।
\cআরও আউটপুট দমন করা হয়
কখনও কখনও সঠিক সরঞ্জামটি ব্যবহার করা ভাল ধারণা। printfপরিবর্তে আপনি ব্যবহার করতে পারেন :
% printf "-n\n"
-n
echo, তবে printfএটি আরও উন্নতমানের ।
আপনি এই আদেশটি ব্যবহার করতে পারেন তবে এটি একটি অতিরিক্ত স্থান যুক্ত করে।
echo -e "\r-n"
এটি হ্যাক এক ধরণের।
-e ব্যাকস্ল্যাশ কমান্ড প্রতীকগুলি সক্ষম করে।
\r একটি গাড়ী চালনা।
আসলে কোনও \বৈধ অক্ষর স্ট্রিংয়ের যে কোনও জায়গায় করবে place
আপনি দেখতে পারেন যা দ্বারা বৈধ help echo।
echo "-n"-nপ্যারামিটার হিসাবে ব্যবহৃত হয় কারণ কাজ করে না echo।
পিএস সেরা সমাধান আইএমএইচও হয়
echo -e "-n\c"
এটি কোনও অতিরিক্ত অক্ষর যুক্ত করে না ।
echo -e "-n\n"
একই তবে নতুন লাইনের চর দিয়ে মুদ্রণ করে।
-nবৈধ, -nfooপ্রিন্ট করা হবে না তাই।
man echoআছে। তবে helpকিছুটা ভাল।
/bin/echoসম্পূর্ণ ভিন্ন জিনিস এবং আপনি যখন echoব্যাশে দৌড়ান , আপনি বিল্টিন পাবেন যা আপনার শেলের উপর নির্ভর করে বেশ আলাদা হতে পারে।
আমি মনে করি আপনি যদি echoকেবলমাত্র ব্যবহার করতে চান তবে এটি আপনাকে সন্তুষ্ট করা উচিত:
echo "-n "
এই কাজ করে কারণ যখন -nজন্য একটি বৈধ বিকল্প echo, -nএকটি স্পেস দিয়ে পরে এটি নয়। যেহেতু এটি কোনও বিকল্প নয়, echoকেবল এটি মুদ্রণ করুন।
আপনি ছেলেরা সত্যিই এটি overthink হয়।
echo -e \\055n
অথবা কোনও পেছনের নিউলাইন নেই
echo -en \\055n
printf "-n\n" একটি overthinking?
/bin/echoকমপক্ষে যদি আহ্বান জানানো হয়echo -e "\055n"
@ এবি এর উত্তর প্রসারিত করার জন্য, কেবলমাত্র পোর্টেবল উপায় echoহ'ল কোনও বিকল্প ব্যবহার করা থেকে বিরত থাকুন -n। printfপরিবর্তে যেখানে উপলব্ধ সেখানে ব্যবহার বিবেচনা করুন । এই রেফারেন্স পৃষ্ঠাটি আরও বিশদ সরবরাহ করে এবং কখন এবং কীভাবে echoএবং কীভাবে খুব ভালভাবে ব্যাখ্যা করেprintf ব্যবহার করা উচিত:
আজকাল, ইকো (1) কেবলমাত্র বহনযোগ্য যদি আপনি পতাকা বাদ দেন এবং সিকোয়েন্স ক্রমগুলি রেখে যান। এর পরিবর্তে প্রিন্টফ (1) ব্যবহার করুন, যদি আপনার সরল পাঠ্যের চেয়ে আরও বেশি প্রয়োজন হয়।
বাশ স্ক্রিপ্টে আপনি চালাতে পারেন:
echo -n -
echo n
বা ইন্টারেক্টিভ শেল এ:
echo -n - ; echo n
এটি echoএকটি -চরিত্র এবং একটি nচরিত্র।
-pilot6@Pilot6:~$। দ্বিতীয় ফলাফল n।
&&- আমি সত্যিই বলব না যে এই উত্তরটি ভুল ।
আপনি চালাতে পারেন
printf -n;echo
ব্যস্তবক্স অ্যাশে পরীক্ষিত
ashহল অ্যালকুইস্ট শেলের নাম।
echo -n -- -nকাজ (পরীক্ষা কুশলী কোন লিনাক্স বক্স না থাকে)?