কেন এই শেল স্ক্রিপ্ট ফরম্যাটার ব্যবহার করবেন
- POSIX sh, Bash, mksh এবং সম্পর্কিত শেলের জন্য তাত্ক্ষণিক ফরম্যাটিং
- ইন্ডেন্টেশন, স্পেসিং এবং কেস/esac ব্লকের জন্য shfmt-স্টাইলের নিয়ম
- ইন্ডেন্ট সাইজ, ট্যাব বনাম স্পেস এবং রিডাইরেক্ট স্পেসিংয়ের মতো বিকল্পগুলি সমর্থন করার জন্য ডিজাইন করা
- কাঁচা কোড পেস্ট করুন বা `.sh`, `.bash`, `.ksh`, `.mksh`, অথবা `.bats` ফাইল আপলোড করুন
- CI/CD পাইপলাইন, Docker এন্ট্রিপয়েন্ট এবং ডটফাইলের জন্য আদর্শ সঙ্গী
- shfmt-স্টাইল লজিক চালিত সুরক্ষিত ব্যাকএন্ডের মাধ্যমে ফরম্যাট করা – স্থানীয় ইন্সটলেশনের প্রয়োজন নেই
- ক্লিকেই পরিষ্কার স্ক্রিপ্ট কপি বা ডাউনলোড করুন
🛠️ অনলাইনে আপনার শেল স্ক্রিপ্ট ফরম্যাট করার উপায় for shell-script-formatter
১. আপনার স্ক্রিপ্ট পেস্ট বা আপলোড করুন
📥 আপনার শেল কোড এডিটরে পেস্ট করুন, অথবা একটি `.sh`, `.bash`, `.ksh`, `.mksh` বা `.bats` ফাইল ড্র্যাগ-এন্ড-ড্রপ করুন। সিনট্যাক্স হাইলাইটিং কাঠামো এবং কমান্ড চিহ্নিত করা সহজ করে।
২. (ঐচ্ছিক) উন্নত সেটিংস সামঞ্জস্য করুন
⚙️ যদি আপনার প্রকল্প কাস্টম স্টাইল নিয়ম ব্যবহার করে, UI-তে উপলব্ধ হলে ইন্ডেন্টেশন বা অন্যান্য উন্নত বিকল্প সামঞ্জস্য করুন। অন্যথায়, ডিফল্ট প্রোফাইল ইতিমধ্যেই সাধারণ shfmt অনুশীলনের সাথে মেলে।
৩. আপনার স্ক্রিপ্ট ফরম্যাট করুন
✨ আপনার স্ক্রিপ্ট সুরক্ষিত ফরম্যাটিং API-তে পাঠাতে **ফরম্যাট** ক্লিক করুন। এটি আচরণ সংরক্ষণ করে ইন্ডেন্টেশন, স্পেসিং এবং নির্দিষ্ট কনস্ট্রাক্ট পুনর্লিখন করে।
৪. ফলাফল কপি বা ডাউনলোড করুন
📤 ফরম্যাট করা স্ক্রিপ্ট আপনার এডিটরে ফিরে কপি করুন, অথবা git, CI, বা প্রোডাকশন ডেপ্লয়ের জন্য প্রস্তুত `.sh` ফাইল হিসেবে ডাউনলোড করুন।
প্রযুক্তিগত বিবরণ
সমর্থিত ফরম্যাট ও এক্সটেনশন
বাস্তব-বিশ্বের সিস্টেমে আপনি যে সাধারণ Bourne-স্টাইল শেল উপভাষাগুলোর সম্মুখীন হন সেগুলো সমর্থন করে:
| ফরম্যাট / উপভাষা | সাধারণ এক্সটেনশন | বর্ণনা |
|---|---|---|
| POSIX sh | .sh | /bin/sh-এর সাথে সামঞ্জস্যপূর্ণ বহনযোগ্য শেল স্ক্রিপ্ট |
| Bash | .sh, .bash | GNU Bash স্ক্রিপ্ট এবং ইন্টারেক্টিভ হেল্পার |
| Korn shell (ksh) | .ksh | লিগেসি পরিবেশে Korn shell স্ক্রিপ্ট |
| mksh | .mksh | MirBSD Korn শেল স্ক্রিপ্টসমূহ |
| Bats টেস্ট | .bats | Bats ব্যবহার করে শেল-ভিত্তিক টেস্ট স্যুট |
ফরম্যাটিং আচরণ (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/যে ফাইলগুলি পুনরায় ফরম্যাট করা হবে তার জন্য একটি ডিফ দেখায়; পরিবর্তন প্রয়োজন হলে নন-জিরোতে প্রস্থান করে।
শেল ফরম্যাটিংয়ের ব্যবহারিক ক্ষেত্র
DevOps & CI/CD পাইপলাইন
মিশন-ক্রিটিকাল স্ক্রিপ্টগুলি পড়ার যোগ্য, পর্যালোচনার যোগ্য এবং প্রোডাকশন-নিরাপদ রাখুন।
- `main` এ মার্জ করার আগে ডিপ্লয়মেন্ট এবং রোলব্যাক স্ক্রিপ্টগুলি পরিষ্কার করুন।
- `.git/hooks`, `scripts/` এবং CI হেল্পারগুলিতে হুকগুলি স্বাভাবিক করুন।
- Docker এন্ট্রিপয়েন্ট এবং কন্টেইনার বুটস্ট্র্যাপ স্ক্রিপ্টগুলি ফরম্যাট করুন।
shfmt -i 2 -w ./scripts/deploy.shshfmt -i 2 -w ./scripts/*.shদলগত সহযোগিতা ও ওপেন সোর্স
স্টাইল বিতর্ক এড়িয়ে পর্যালোচনায় লজিকের উপর ফোকাস করুন।
- সকল অবদানকারীর শেল স্ক্রিপ্টে একক স্টাইল প্রয়োগ করুন।
- ডটফাইল এবং হেল্পারগুলিকে সুসংগত রেখে অনবোর্ডিং সহজ করুন।
- ইন্ডেন্টেশন এবং স্পেসিং স্ট্যান্ডার্ডাইজ করে নয়েজি ডিফস হ্রাস করুন।
shfmt -w hooks/*.shshfmt -i 2 -ci -bn -w .শেল স্ক্রিপ্টিং শেখা ও শেখানো
ছাত্র এবং জুনিয়র ডেভেলপারদের জন্য সেরা অনুশীলনগুলি প্রদর্শন করুন।
- স্লাইড বা ডকুমেন্টেশনে রাখার আগে উদাহরণগুলি পরিষ্কার করুন।
- সেমান্টিক্সে ফিডব্যাক কেন্দ্রীভূত করতে শিক্ষার্থীদের জমাগুলি স্বয়ংক্রিয়ভাবে ফরম্যাট করুন।
- প্রদর্শন করুন কিভাবে লেআউট পাঠযোগ্যতা এবং বাগ সনাক্তকরণকে প্রভাবিত করে।
❓ Frequently Asked Questions
🔍shfmt কি?
⚙️আমি কতগুলি স্পেস ইন্ডেন্ট করতে চাই তা বেছে নিতে পারি?
🚫এই ওয়েব টুল কি আমার ফাইল ওভাররাইট করে?
💬এটি কি Bash-সুনির্দিষ্ট সিনট্যাক্স বুঝতে পারে?
🔒সংবেদনশীল স্ক্রিপ্টগুলি এখানে ফরম্যাট করা কি নিরাপদ?
Pro Tips
প্রতিটি কমিটের আগে shfmt চালান যাতে আপনার git ইতিহাস স্পেস পরিবর্তনের পরিবর্তে প্রকৃত পরিবর্তনে ফোকাস করে।
CI-এর সাথে `shfmt -d` একত্রিত করুন যখন স্ক্রিপ্টগুলি সঠিকভাবে ফরম্যাট করা না থাকে তখন মার্জ ব্লক করতে।
আপনার শেল স্ক্রিপ্টে স্টাইল এবং লজিক উভয় সমস্যা ধরতে এই ফরম্যাটারটি ShellCheck-এর সাথে জুড়ে দিন।
সূক্ষ্ম পোর্টেবিলিটি সমস্যা এড়াতে আপনার সমস্ত স্ক্রিপ্টে শেব্যাং (`#!/usr/bin/env bash`) সামঞ্জস্যপূর্ণ রাখুন।
Additional Resources
Other Tools
- সিএসএস সৌন্দর্যবর্ধক
- এইচটিএমএল সৌন্দর্যবর্ধক
- জাভাস্ক্রিপ্ট সৌন্দর্যবর্ধক
- পিএইচপি সৌন্দর্যবর্ধক
- রং নির্বাচক
- স্প্রাইট এক্সট্র্যাক্টর
- বেস৬৪ ডিকোডার
- বেস৬৪ এনকোডার
- সি-শার্প ফরম্যাটার
- সিএসভি ফরম্যাটার
- Dockerfile Formatter
- এলম ফরম্যাটার
- ইএনভি ফরম্যাটার
- গো ফরম্যাটার
- গ্রাফকিউএল ফরম্যাটার
- এইচসিএল ফরম্যাটার
- আইএনআই ফরম্যাটার
- জেসন ফরম্যাটার
- ল্যাটেক ফরম্যাটার
- মার্কডাউন ফরম্যাটার
- অবজেক্টিভসি ফরম্যাটার
- Php Formatter
- প্রোটো ফরম্যাটার
- পাইথন ফরম্যাটার
- রুবি ফরম্যাটার
- রাস্ট ফরম্যাটার
- স্কালা ফরম্যাটার
- এসকিউএল ফরম্যাটার
- SVG ফরম্যাটার
- Swift ফরম্যাটার
- TOML ফরম্যাটার
- Typescript Formatter
- XML ফরম্যাটার
- YAML ফরম্যাটার
- Yarn ফরম্যাটার
- সিএসএস মিনিফায়ার
- Html Minifier
- Javascript Minifier
- জেসন মিনিফায়ার
- XML মিনিফায়ার
- এইচটিটিপি হেডার ভিউয়ার
- পিডিএফ থেকে টেক্সট
- রেজেক্স টেস্টার
- সার্প র্যাংক চেকার
- Whois লুকআপ