একই স্ক্রিপ্টের সাথে bashএবং বিভিন্ন কমান্ড কার্যকর করার বিভিন্ন উপায় রয়েছে cmd।
cmd:;অন্যান্য উত্তরে উল্লিখিত হিসাবে শুরু হওয়া লাইনগুলি উপেক্ষা করবে । কমান্ড দিয়ে যদি বর্তমান লাইনটি শেষ হয় তবে এটি পরবর্তী লাইনটিকেও উপেক্ষা করবে rem ^, কারণ ^অক্ষরটি লাইন বিরতি থেকে রক্ষা পাবে এবং পরবর্তী লাইনটি একটি মন্তব্য হিসাবে বিবেচিত হবে rem।
লাইন bashউপেক্ষা করার জন্য cmd, একাধিক উপায় আছে। আমি এটি না ভেঙে কিছু করার জন্য কিছু উপায় গণনা করেছি cmdআদেশগুলি :
অস্তিত্বহীন #কমান্ড (প্রস্তাবিত নয়)
স্ক্রিপ্টটি #চালু cmdহওয়ার সময় যদি কোনও কমান্ড উপলব্ধ না থাকে তবে আমরা এটি করতে পারি:
echo 'Hello bash!'
#শুরুতে চরিত্র cmdলাইন তোলে bashএকটি মন্তব্য হিসাবে যে লাইন আচরণ।
#শেষে চরিত্র bashলাইন মন্তব্য করতে ব্যবহার করা হয় \r, চরিত্র হিসাবে ব্রায়ান Tompsett মধ্যে নির্দিষ্ট তার উত্তর । এটি ছাড়া, bashযদি ফাইলটির \r\nলাইন শেষ হয় তবে এটির একটি ত্রুটি ছুঁড়ে দেবে cmd।
করার মাধ্যমে # 2>nul, আমরা cmdকিছু অস্তিত্বহীন #কমান্ডের ত্রুটি উপেক্ষা করার চেষ্টা করছি , তবুও নিম্নলিখিত আদেশটি কার্যকর করা হচ্ছে।
যদি কোনও #কমান্ড উপলব্ধ থাকে PATHবা যদি আপনার কাছে উপলব্ধ কমান্ডগুলির উপর আপনার কোনও নিয়ন্ত্রণ না থাকে তবে এই সমাধানটি ব্যবহার করবেন না cmd।
চরিত্রটি echoউপেক্ষা করার জন্য ব্যবহার করা #হচ্ছেcmd
echoএর আউটপুটটি পুনঃনির্দেশিত এর সাথে মন্তব্য করা অংশে cmdকমান্ড সন্নিবেশ করতে আমরা ব্যবহার করতে পারি bash:
echo >/dev/null
echo 'Hello bash!'
যেহেতু #চরিত্রটির কোনও বিশেষ অর্থ নেই cmd, তাই এটি পাঠ্যের অংশ হিসাবে বিবেচিত হবে echo। আমাদের যা করতে হয়েছিল তা হ'ল echoকমান্ডের আউটপুট পুনর্নির্দেশ করা এবং এর পরে অন্যান্য কমান্ড সন্নিবেশ করানো।
খালি #.batফাইল
echo >/dev/null
echo 'Hello bash!'
echo >/dev/null # 1>nul 2> #.batলাইন একটি খালি সৃষ্টি #.batফাইল থাকাকালীন cmd(অথবা প্রতিস্থাপন বিদ্যমান #.bat, যদি থাকে), এবং কিছুই না থাকাকালীনbash ।
এই ফাইলটি cmdলাইন (গুলি) দ্বারা ব্যবহৃত হবে যা এরপরে অন্য কোনও #কমান্ড থাকলেও অনুসরণ করবে PATH।
del #.batকমান্ড cmd-specific কোড তৈরি করা হয়েছে যে ফাইল মুছে ফেলা হবে। আপনাকে কেবল শেষ cmdলাইনে এটি করতে হবে ।
যদি কোনও #.batফাইল আপনার বর্তমান কার্যক্ষম ডিরেক্টরিতে থাকতে পারে তবে এই সমাধানটি ব্যবহার করবেন না কারণ সেই ফাইলটি মোছা হবে।
পুনরুদ্ধার করা: আদেশগুলি উপেক্ষা করতে এখানে-নথি ব্যবহার cmdকরাbash
:; echo 'Hello bash!';<<:
echo Hello cmd! & ^
:
^চরিত্রটি cmdরেখার শেষে রেখে আমরা লাইন ব্রেকটি এড়াতে চলেছি এবং :এখানে-নথির ডিলিমিটার হিসাবে ব্যবহার করে , ডিলিমিটার লাইনের সামগ্রীগুলির কোনও প্রভাব পড়বে না cmd। এইভাবে, cmdলাইনটি শেষ হওয়ার পরে কেবল তার রেখাটি কার্যকর করা হবে :, একই আচরণ করেbash ।
আপনি যদি উভয় প্ল্যাটফর্মে একাধিক লাইন রাখতে চান এবং কেবলমাত্র ব্লকের শেষে এগুলি সম্পাদন করতে চান, আপনি এটি করতে পারেন:
:;(
:; echo 'Hello'
:; echo 'bash!'
:; );<<'here-document delimiter'
(
echo Hello
echo cmd!
) & rem ^
here-document delimiter
যতক্ষণ না cmdহুবহু কোনও লাইন নেই here-document delimiter, এই সমাধানটি কাজ করা উচিত। আপনি here-document delimiterঅন্য কোনও পাঠ্যে পরিবর্তন করতে পারেন ।
উপস্থাপিত সমস্ত সমাধানে, কমান্ডগুলি কেবলমাত্র শেষ পংক্তির পরে কার্যকর করা হবে , যদি তারা উভয় প্ল্যাটফর্মে একই কাজ করে তবে তাদের আচরণকে সামঞ্জস্য করে তোলে।
এই সমাধানগুলি অবশ্যই \r\nলাইন ব্রেক হিসাবে ফাইলগুলিতে সংরক্ষণ করতে হবে, অন্যথায় তারা কাজ করবে না cmd।