Loading…

حول منسق نصوص Shell عبر الإنترنت

الصق نص shell الخاص بك، اضغط "تنسيق"، واحصل على مخرجات نظيفة ومتسقة مدعومة بـ `shfmt`. مثالي لأنابيب DevOps وملفات dot ونقاط دخول الحاويات ونصوص النشر الجاهزة للإنتاج. لا حاجة لتثبيت أو تسجيل دخول – مجرد كود shell مقروء وجاهز للحفظ.

لماذا تستخدم منسق نصوص Shell هذا

  • تنسيق فوري لـ POSIX sh وBash وmksh والأصداف ذات الصلة
  • قواعد نمط shfmt للمسافات البادئة والفراغات وكتل case/esac
  • مصمم لدعم خيارات مثل حجم المسافة البادئة، علامات الجدولة مقابل المسافات ومسافات إعادة التوجيه
  • الصق الكود الخام أو ارفع ملفات `.sh` أو `.bash` أو `.ksh` أو `.mksh` أو `.bats`
  • رفيق مثالي لأنابيب CI/CD ونقاط دخول Docker وملفات dotfiles
  • تنسيق عبر خلفية آمنة تعمل بمنطق shfmt – لا حاجة لتثبيت محلي
  • نسخ أو تحميل السكريبت المنظف بنقرة واحدة

🛠️ كيفية تنسيق سكريبتات Shell الخاصة بك عبر الإنترنت for shell-script-formatter

1

1. الصق أو ارفع السكريبت الخاص بك

📥 الصق كود shell في المحرر، أو اسحب وأسقط ملف `.sh` أو `.bash` أو `.ksh` أو `.mksh` أو `.bats`. تسليط الضوء على الصياغة يسهل رصد البنية والأوامر.

2

2. (اختياري) عدّل الإعدادات المتقدمة

⚙️ إذا كان مشروعك يستخدم قواعد نمط مخصصة، اضبط المسافات البادئة أو الخيارات المتقدمة الأخرى عند توفرها في الواجهة. وإلا، فإن الملف الشخصي الافتراضي يطابق ممارسات shfmt الشائعة بالفعل.

3

3. نسّق السكريبت الخاص بك

✨ انقر **تنسيق** لإرسال السكريبت إلى واجهة برمجة التطبيقات الآمنة للتنسيق. تعيد كتابة المسافات البادئة والتباعد وبعض التركيبات مع الحفاظ على السلوك.

4

4. انسخ أو حمّل النتيجة

📤 انسخ السكريبت المنسق مرة أخرى إلى محررك، أو حمّله كملف `.sh` جاهز لـ git أو CI أو النشر الإنتاجي.

المواصفات الفنية

التنسيقات والامتدادات المدعومة

يدعم لهجات shell الشائعة من نوع Bourne التي تواجهها في الأنظمة الواقعية:

التنسيق / اللهجةالامتداد النموذجيالوصف
POSIX sh.shسكريبتات shell محمولة متوافقة مع /bin/sh
Bash.sh, .bashسكريبتات GNU Bash ومساعدات تفاعلية
Korn shell (ksh).kshسكريبتات Korn shell في البيئات القديمة
mksh.mkshنصوص Korn shell من MirBSD
اختبارات Bats.batsمجموعات اختبار قائمة على Shell باستخدام Bats

سلوك التنسيق (نمط shfmt)

يتبع المُنسِّق الخلفي قواعد نمط shfmt لتخطيط shell متسق.

الجانبالسلوكالفائدة
المسافة البادئةيوحد المسافة البادئة في `if`، `for`، `while`، `case`، الدوال والأصداف الفرعيةيسهل التحليل البصري لتدفق التحكم والتضمين.
المسافاتيضيف مسافات حول `=` في التعيينات وحول العوامل الثنائية حيثما كان ذلك مناسبًايقلل من التشويش البصري وأخطاء التحليل العرضية.
إعادة التوجيهيدعم المسافات حول `>`، `>>`، `<` وفقًا لاتفاقيات نمط shfmtيحسن قابلية قراءة إعادة توجيه الملفات.
كتل caseيُحاذي `case`، فروع الأنماط و`esac` بشكل متسقيمنع عبارات case المضغوطة أو المتداخلة بعمق.
مخرجات ثابتةتشغيل المُنسِّق مرة أخرى يعطي نفس النتيجةيسمح بالدمج الآمن في خطافات pre-commit و CI.

حدود الإدخال والحجم

مصمم ليكون سريعًا ومتوقعًا حتى على النصوص البرمجية غير البسيطة.

المعاملالحد / السلوكملاحظات
الحد الأقصى لحجم الإدخال (نص)≈ 2 ميجابايتالنصوص البرمجية الأكبر من هذا يُفضل تنسيقها محليًا باستخدام shfmt.
الحد الأقصى لحجم الملف (تحميل)≈ 5 ميجابايتمثالي لمعظم نصوص النشر ومجموعات الأدوات.
الترميزيُوصى بـ UTF-8قم بتحويل الترميزات القديمة مثل ISO-8859-1 قبل التنسيق.

نموذج التنفيذ

يعمل المُنسِّق عبر خلفية مؤمنة باستخدام منطق نمط shfmt.

الجانبالسلوكملاحظات
النقلاستدعاء HTTPS لنقطة النهاية `/api/shell-script-formatter`يمنع التنصت أثناء تنسيق البرنامج النصي الخاص بك.
المهلة~25 ثانية لكل طلبيتجنب المهام المنفلتة على المدخلات الكبيرة جدًا أو المرضية.
الدلالاتالمسافات البيضاء والتخطيط فقطيتم الحفاظ على منطق البرنامج النصي الخاص بك؛ يتم تغيير التنسيق فقط.

مكافئ سطر الأوامر مع shfmt

هل تريد نفس السلوك في طرفيتك أو خط أنابيب CI؟ استخدم `shfmt` مباشرة:

لينكس / 🍎 macOS / 🪟 ويندوز (عبر WSL أو Go)

تثبيت shfmt باستخدام Go

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

يثبت ثنائي `shfmt` في دليل bin الخاص بـ Go (مثل `~/go/bin`).

تنسيق ملف shell بمسافة بادئة مزدوجة

shfmt -i 2 -w script.sh

يكتب فوق `script.sh` بإخراج متسق التنسيق.

التنسيق والطباعة إلى stdout

shfmt -i 4 script.sh

يستخدم مسافة بادئة رباعية ويطبع إلى stdout دون تعديل الملف.

التحقق من التنسيق في CI (بدون تغييرات)

shfmt -d scripts/

يعرض فرقًا للملفات التي سيتم إعادة تنسيقها؛ يخرج بقيمة غير صفرية إذا كانت هناك حاجة إلى تغييرات.

أضف خطوة `shfmt -d` في خط أنابيب CI الخاص بك أو خطاف pre-commit حتى يظل كل برنامج نصي نظيفًا ومتسقًا تلقائيًا.

حالات الاستخدام العملية لتنسيق Shell

DevOps وخطوط أنابيب CI/CD

احتفظ بالبرامج النصية الحرجة قابلة للقراءة والمراجعة وآمنة للإنتاج.

  • تنظيف برامج النشر والتراجع قبل الدمج في `main`.
  • توحيد الخطافات في `.git/hooks` و `scripts/` ومساعدي CI.
  • تنسيق نقاط دخول Docker وبرامج تشغيل الحاوية.
shfmt -i 2 -w ./scripts/deploy.sh
shfmt -i 2 -w ./scripts/*.sh

التعاون الجماعي والمصادر المفتوحة

تجنب النقاشات حول النمط وركز على المنطق في المراجعات.

  • تطبيق نمط واحد عبر جميع نصوص shell للمساهمين.
  • تسهيل الانضمام من خلال الحفاظ على ملفات النقاط والمساعدات مرتبة.
  • تقليل الاختلافات المزعجة من خلال توحيد المسافات البادئة والتباعد.
shfmt -w hooks/*.sh
shfmt -i 2 -ci -bn -w .

تعليم وتعلم برمجة Shell

عرض أفضل الممارسات للطلاب والمطورين المبتدئين.

  • تنظيف الأمثلة قبل وضعها في الشرائح أو الوثائق.
  • تنسيق طلبات الطلاب تلقائياً للتركيز على الملاحظات الدلالية.
  • إظهار كيف يؤثر التنسيق على سهولة القراءة واكتشاف الأخطاء.

❓ Frequently Asked Questions

🔍ما هو shfmt؟

`shfmt` هو أداة سطر أوامر مفتوحة المصدر لتنسيق نصوص shell تم إنشاؤها بواسطة mvdan. تقوم بتحليل كود shell الخاص بك وإعادة كتابته بمسافات بادئة وتباعد وهيكل متسق لـ POSIX sh و Bash واللهجات المماثلة.

⚙️هل يمكنني اختيار عدد المسافات للتباعد؟

نعم. في استخدام سطر الأوامر يمكنك التحكم في المسافات البادئة باستخدام علامة `-i` (على سبيل المثال `-i 2` أو `-i 4`). تم تصميم هذه الأداة عبر الإنترنت لدعم تفضيلات المسافات البادئة المكافئة عبر خلفية التنسيق الخاصة بها.

🚫هل تقوم هذه الأداة عبر الإنترنت بالكتابة فوق ملفي؟

لا. يُرجع المُنسِّق النص النظيف في المتصفح. أنت تقرر ما إذا كنت تريد نسخه إلى محررك أو تنزيله كملف جديد. تبقى ملفاتك الأصلية دون مساس ما لم تقم بالكتابة فوقها بنفسك.

💬هل تفهم صيغة Bash المحددة؟

نعم. محرك shfmt الأساسي يدعم تركيبات Bash الشائعة بالإضافة إلى POSIX sh، بالإضافة إلى أصداف إضافية مثل mksh و ksh.

🔒هل من الآمن تنسيق النصوص الحساسة هنا؟

للنصوص العامة، هذه الأداة مريحة وآمنة. للنصوص التي تحتوي على بيانات عالية الحساسية (أسرار مضمنة، تفاصيل البنية التحتية الداخلية، إلخ)، يكون تشغيل shfmt محلياً أو داخل بيئة CI الخاصة بك أكثر أماناً عادةً.

Pro Tips

Best Practice

شغّل shfmt قبل كل commit حتى يركز سجل git على التغييرات الحقيقية، وليس المسافات البيضاء.

Best Practice

اجمع `shfmt -d` مع CI لحظر عمليات الدمج عندما لا تكون النصوص منسقة بشكل صحيح.

Best Practice

زوّد هذا المُنسِّق مع ShellCheck لالتقاط مشاكل النمط والمنطق في نصوص shell الخاصة بك.

Best Practice

حافظ على تنسيق shebangs (`#!/usr/bin/env bash`) متسقًا عبر جميع النصوص البرمجية لتجنب مشاكل التوافق الدقيقة.

Additional Resources

Other Tools