Loading…

সম্পর্কে অনলাইন শেল স্ক্রিপ্ট ফরম্যাটার

আপনার শেল স্ক্রিপ্ট পেস্ট করুন, "ফরম্যাট" চাপুন এবং `shfmt` দ্বারা চালিত পরিষ্কার, সামঞ্জস্যপূর্ণ আউটপুট পান। DevOps পাইপলাইন, dotfiles, কন্টেইনার এন্ট্রিপয়েন্ট এবং প্রোডাকশন-রেডি ডিপ্লয়মেন্ট স্ক্রিপ্টের জন্য আদর্শ। কোনও ইনস্টলেশন নেই, কোনও লগইন নেই – কেবল পড়ার যোগ্য শেল কোড কমিট করার জন্য প্রস্তুত।

কেন এই শেল স্ক্রিপ্ট ফরম্যাটার ব্যবহার করবেন

  • POSIX sh, Bash, mksh এবং সম্পর্কিত শেলের জন্য তাত্ক্ষণিক ফরম্যাটিং
  • ইন্ডেন্টেশন, স্পেসিং এবং কেস/esac ব্লকের জন্য shfmt-স্টাইলের নিয়ম
  • ইন্ডেন্ট সাইজ, ট্যাব বনাম স্পেস এবং রিডাইরেক্ট স্পেসিংয়ের মতো বিকল্পগুলি সমর্থন করার জন্য ডিজাইন করা
  • কাঁচা কোড পেস্ট করুন বা `.sh`, `.bash`, `.ksh`, `.mksh`, অথবা `.bats` ফাইল আপলোড করুন
  • CI/CD পাইপলাইন, Docker এন্ট্রিপয়েন্ট এবং ডটফাইলের জন্য আদর্শ সঙ্গী
  • shfmt-স্টাইল লজিক চালিত সুরক্ষিত ব্যাকএন্ডের মাধ্যমে ফরম্যাট করা – স্থানীয় ইন্সটলেশনের প্রয়োজন নেই
  • ক্লিকেই পরিষ্কার স্ক্রিপ্ট কপি বা ডাউনলোড করুন

🛠️ অনলাইনে আপনার শেল স্ক্রিপ্ট ফরম্যাট করার উপায় for shell-script-formatter

1

১. আপনার স্ক্রিপ্ট পেস্ট বা আপলোড করুন

📥 আপনার শেল কোড এডিটরে পেস্ট করুন, অথবা একটি `.sh`, `.bash`, `.ksh`, `.mksh` বা `.bats` ফাইল ড্র্যাগ-এন্ড-ড্রপ করুন। সিনট্যাক্স হাইলাইটিং কাঠামো এবং কমান্ড চিহ্নিত করা সহজ করে।

2

২. (ঐচ্ছিক) উন্নত সেটিংস সামঞ্জস্য করুন

⚙️ যদি আপনার প্রকল্প কাস্টম স্টাইল নিয়ম ব্যবহার করে, UI-তে উপলব্ধ হলে ইন্ডেন্টেশন বা অন্যান্য উন্নত বিকল্প সামঞ্জস্য করুন। অন্যথায়, ডিফল্ট প্রোফাইল ইতিমধ্যেই সাধারণ shfmt অনুশীলনের সাথে মেলে।

3

৩. আপনার স্ক্রিপ্ট ফরম্যাট করুন

✨ আপনার স্ক্রিপ্ট সুরক্ষিত ফরম্যাটিং API-তে পাঠাতে **ফরম্যাট** ক্লিক করুন। এটি আচরণ সংরক্ষণ করে ইন্ডেন্টেশন, স্পেসিং এবং নির্দিষ্ট কনস্ট্রাক্ট পুনর্লিখন করে।

4

৪. ফলাফল কপি বা ডাউনলোড করুন

📤 ফরম্যাট করা স্ক্রিপ্ট আপনার এডিটরে ফিরে কপি করুন, অথবা git, CI, বা প্রোডাকশন ডেপ্লয়ের জন্য প্রস্তুত `.sh` ফাইল হিসেবে ডাউনলোড করুন।

প্রযুক্তিগত বিবরণ

সমর্থিত ফরম্যাট ও এক্সটেনশন

বাস্তব-বিশ্বের সিস্টেমে আপনি যে সাধারণ Bourne-স্টাইল শেল উপভাষাগুলোর সম্মুখীন হন সেগুলো সমর্থন করে:

ফরম্যাট / উপভাষাসাধারণ এক্সটেনশনবর্ণনা
POSIX sh.sh/bin/sh-এর সাথে সামঞ্জস্যপূর্ণ বহনযোগ্য শেল স্ক্রিপ্ট
Bash.sh, .bashGNU Bash স্ক্রিপ্ট এবং ইন্টারেক্টিভ হেল্পার
Korn shell (ksh).kshলিগেসি পরিবেশে Korn shell স্ক্রিপ্ট
mksh.mkshMirBSD Korn শেল স্ক্রিপ্টসমূহ
Bats টেস্ট.batsBats ব্যবহার করে শেল-ভিত্তিক টেস্ট স্যুট

ফরম্যাটিং আচরণ (shfmt-স্টাইল)

ব্যাকএন্ড ফরম্যাটার সামঞ্জস্যপূর্ণ শেল লেআউটের জন্য shfmt-স্টাইল নিয়ম অনুসরণ করে।

দিকআচরণসুবিধা
ইন্ডেন্টেশন`if`, `for`, `while`, `case`, ফাংশন এবং সাবশেলে ইন্ডেন্ট স্বাভাবিক করেভিজ্যুয়ালি কন্ট্রোল ফ্লো এবং নেস্টিং পার্স করা সহজ।
স্পেসিংঅ্যাসাইনমেন্টে `=` এর চারপাশে এবং উপযুক্ত স্থানে বাইনারি অপারেটরদের চারপাশে স্পেস যোগ করেভিজ্যুয়াল নয়েজ এবং আকস্মিক পার্সিং ভুল হ্রাস করে।
রিডাইরেক্টshfmt-স্টাইল কনভেনশন অনুযায়ী `>`, `>>`, `<` এর চারপাশে স্পেসিং সমর্থন করেফাইল রিডাইরেকশনের পাঠযোগ্যতা উন্নত করে।
কেস ব্লক`case`, প্যাটার্ন ব্রাঞ্চ এবং `esac` কে সামঞ্জস্যপূর্ণভাবে অ্যালাইন করেগভীরভাবে নেস্টেড বা সংকুচিত কেস স্টেটমেন্ট প্রতিরোধ করে।
ইডেমপোটেন্ট আউটপুটফরম্যাটার আবার চালালে একই ফলাফল পাওয়া যায়প্রি-কমিট হুক এবং CI-তে নিরাপদ ইন্টিগ্রেশন অনুমোদন করে।

ইনপুট সীমা ও আকার

অ-তুচ্ছ স্ক্রিপ্টেও দ্রুত এবং পূর্বাভাসযোগ্য হওয়ার জন্য ডিজাইন করা হয়েছে।

প্যারামিটারসীমা / আচরণনোট
সর্বোচ্চ ইনপুট আকার (টেক্সট)≈ ২ MBএর চেয়ে বড় স্ক্রিপ্ট স্থানীয়ভাবে shfmt দিয়ে ফরম্যাট করা ভাল।
সর্বোচ্চ ফাইল আকার (আপলোড)≈ ৫ MBবেশিরভাগ ডেপ্লয়মেন্ট স্ক্রিপ্ট এবং ইউটিলিটি কালেকশনের জন্য আদর্শ।
এনকোডিংUTF-8 সুপারিশকৃতফরম্যাট করার আগে ISO-8859-1 এর মতো লিগেসি এনকোডিং রূপান্তর করুন।

এক্সিকিউশন মডেল

ফরম্যাটার shfmt-স্টাইল লজিক ব্যবহার করে একটি সুরক্ষিত ব্যাকএন্ডের মাধ্যমে চলে।

দিকআচরণমন্তব্য
পরিবহন`/api/shell-script-formatter` এন্ডপয়েন্টে HTTPS কলআপনার স্ক্রিপ্ট ফরম্যাট হওয়ার সময় গোপনীয়তা রক্ষা করে।
টাইমআউটপ্রতি অনুরোধে ~২৫ সেকেন্ডঅত্যন্ত বড় বা সমস্যাযুক্ত ইনপুটগুলিতে অসংযত কাজ এড়ায়।
অর্থবিজ্ঞানশুধুমাত্র হোয়াইটস্পেস এবং লেআউটআপনার স্ক্রিপ্ট লজিক সংরক্ষিত থাকে; শুধুমাত্র ফরম্যাটিং পরিবর্তন করা হয়।

CLI সমতুল্য shfmt সহ

আপনার টার্মিনাল বা CI পাইপলাইনে একই আচরণ চান? সরাসরি `shfmt` ব্যবহার করুন:

লিনাক্স / 🍎 macOS / 🪟 উইন্ডোজ (WSL বা Go এর মাধ্যমে)

Go ব্যবহার করে shfmt ইনস্টল করুন

go install mvdan.cc/sh/v3/cmd/shfmt@latest

আপনার Go bin ডিরেক্টরিতে `shfmt` বাইনারি ইনস্টল করে (যেমন `~/go/bin`)।

২-স্পেস ইন্ডেন্ট সহ একটি শেল ফাইল ফরম্যাট করুন

shfmt -i 2 -w script.sh

`script.sh` কে সামঞ্জস্যপূর্ণ ফরম্যাটেড আউটপুট দিয়ে ওভাররাইট করে।

ফরম্যাট করুন এবং stdout এ প্রিন্ট করুন

shfmt -i 4 script.sh

৪-স্পেস ইন্ডেন্টেশন ব্যবহার করে এবং ফাইলটি পরিবর্তন না করে stdout এ প্রিন্ট করে।

CI তে ফরম্যাটিং চেক করুন (কোনো পরিবর্তন নেই)

shfmt -d scripts/

যে ফাইলগুলি পুনরায় ফরম্যাট করা হবে তার জন্য একটি ডিফ দেখায়; পরিবর্তন প্রয়োজন হলে নন-জিরোতে প্রস্থান করে।

আপনার CI পাইপলাইনে বা একটি প্রি-কমিট হুক হিসাবে `shfmt -d` ধাপ যোগ করুন যাতে প্রতিটি স্ক্রিপ্ট স্বয়ংক্রিয়ভাবে পরিষ্কার এবং সামঞ্জস্যপূর্ণ থাকে।

শেল ফরম্যাটিংয়ের ব্যবহারিক ক্ষেত্র

DevOps & CI/CD পাইপলাইন

মিশন-ক্রিটিকাল স্ক্রিপ্টগুলি পড়ার যোগ্য, পর্যালোচনার যোগ্য এবং প্রোডাকশন-নিরাপদ রাখুন।

  • `main` এ মার্জ করার আগে ডিপ্লয়মেন্ট এবং রোলব্যাক স্ক্রিপ্টগুলি পরিষ্কার করুন।
  • `.git/hooks`, `scripts/` এবং CI হেল্পারগুলিতে হুকগুলি স্বাভাবিক করুন।
  • Docker এন্ট্রিপয়েন্ট এবং কন্টেইনার বুটস্ট্র্যাপ স্ক্রিপ্টগুলি ফরম্যাট করুন।
shfmt -i 2 -w ./scripts/deploy.sh
shfmt -i 2 -w ./scripts/*.sh

দলগত সহযোগিতা ও ওপেন সোর্স

স্টাইল বিতর্ক এড়িয়ে পর্যালোচনায় লজিকের উপর ফোকাস করুন।

  • সকল অবদানকারীর শেল স্ক্রিপ্টে একক স্টাইল প্রয়োগ করুন।
  • ডটফাইল এবং হেল্পারগুলিকে সুসংগত রেখে অনবোর্ডিং সহজ করুন।
  • ইন্ডেন্টেশন এবং স্পেসিং স্ট্যান্ডার্ডাইজ করে নয়েজি ডিফস হ্রাস করুন।
shfmt -w hooks/*.sh
shfmt -i 2 -ci -bn -w .

শেল স্ক্রিপ্টিং শেখা ও শেখানো

ছাত্র এবং জুনিয়র ডেভেলপারদের জন্য সেরা অনুশীলনগুলি প্রদর্শন করুন।

  • স্লাইড বা ডকুমেন্টেশনে রাখার আগে উদাহরণগুলি পরিষ্কার করুন।
  • সেমান্টিক্সে ফিডব্যাক কেন্দ্রীভূত করতে শিক্ষার্থীদের জমাগুলি স্বয়ংক্রিয়ভাবে ফরম্যাট করুন।
  • প্রদর্শন করুন কিভাবে লেআউট পাঠযোগ্যতা এবং বাগ সনাক্তকরণকে প্রভাবিত করে।

❓ Frequently Asked Questions

🔍shfmt কি?

`shfmt` হল mvdan দ্বারা তৈরি শেল স্ক্রিপ্টের জন্য একটি ওপেন-সোর্স কমান্ড-লাইন ফরম্যাটার। এটি আপনার শেল কোড পার্স করে এবং POSIX sh, Bash এবং অনুরূপ ডায়ালেক্টের জন্য সামঞ্জস্যপূর্ণ ইন্ডেন্টেশন, স্পেসিং এবং স্ট্রাকচার দিয়ে পুনরায় লিখে।

⚙️আমি কতগুলি স্পেস ইন্ডেন্ট করতে চাই তা বেছে নিতে পারি?

হ্যাঁ। CLI ব্যবহারে আপনি `-i` ফ্ল্যাগ দিয়ে ইন্ডেন্টেশন নিয়ন্ত্রণ করতে পারেন (উদাহরণস্বরূপ `-i 2` বা `-i 4`)। এই অনলাইন টুলটি এর ফরম্যাটিং ব্যাকএন্ডের মাধ্যমে সমতুল্য ইন্ডেন্টেশন পছন্দ সমর্থন করার জন্য ডিজাইন করা হয়েছে।

🚫এই ওয়েব টুল কি আমার ফাইল ওভাররাইট করে?

না। ফরম্যাটার ব্রাউজারে পরিষ্কার স্ক্রিপ্ট ফেরত দেয়। আপনি এটি আপনার এডিটরে কপি করবেন নাকি একটি নতুন ফাইল হিসাবে ডাউনলোড করবেন তা আপনি সিদ্ধান্ত নিন। আপনার মূল ফাইলগুলি আপনি নিজে ওভাররাইট না করা পর্যন্ত অপরিবর্তিত থাকে।

💬এটি কি Bash-সুনির্দিষ্ট সিনট্যাক্স বুঝতে পারে?

হ্যাঁ। অন্তর্নিহিত shfmt-স্টাইল ইঞ্জিন সাধারণ Bash কনস্ট্রাক্টের পাশাপাশি POSIX sh, এবং mksh ও ksh-এর মতো অতিরিক্ত শেল সমর্থন করে।

🔒সংবেদনশীল স্ক্রিপ্টগুলি এখানে ফরম্যাট করা কি নিরাপদ?

সাধারণ-উদ্দেশ্য স্ক্রিপ্টের জন্য, এই টুলটি সুবিধাজনক এবং নিরাপদ। অত্যন্ত সংবেদনশীল ডেটা ধারণকারী স্ক্রিপ্টের জন্য (এমবেডেড সিক্রেটস, অভ্যন্তরীণ ইনফ্রাস্ট্রাকচার বিবরণ ইত্যাদি), সাধারণত shfmt স্থানীয়ভাবে বা আপনার নিজস্ব CI এনভায়রনমেন্টে চালানো বেশি নিরাপদ।

Pro Tips

Best Practice

প্রতিটি কমিটের আগে shfmt চালান যাতে আপনার git ইতিহাস স্পেস পরিবর্তনের পরিবর্তে প্রকৃত পরিবর্তনে ফোকাস করে।

Best Practice

CI-এর সাথে `shfmt -d` একত্রিত করুন যখন স্ক্রিপ্টগুলি সঠিকভাবে ফরম্যাট করা না থাকে তখন মার্জ ব্লক করতে।

Best Practice

আপনার শেল স্ক্রিপ্টে স্টাইল এবং লজিক উভয় সমস্যা ধরতে এই ফরম্যাটারটি ShellCheck-এর সাথে জুড়ে দিন।

Best Practice

সূক্ষ্ম পোর্টেবিলিটি সমস্যা এড়াতে আপনার সমস্ত স্ক্রিপ্টে শেব্যাং (`#!/usr/bin/env bash`) সামঞ্জস্যপূর্ণ রাখুন।

Additional Resources

Other Tools