আমি কমান্ডটি -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'
-n
grep '^-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
কাজ (পরীক্ষা কুশলী কোন লিনাক্স বক্স না থাকে)?