محتويات الدورة

Bash / الأساسي: القواعد والقيم والتحكم / الدرس 3

تصميم عقود المعاملات والنصوص

استخدم المواضع والافتراضيات وعمليات النص والتحقق الصريح مع تمييز الغائب والفارغ.

وقت القراءة التقريبي: 3 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • شرح المسماة والموضعية والخاصة.
  • تمييز البديل والإسناد وتوسعة المطلوب.
  • استخدام العمليات دون اعتبار البيانات شيفرة حسابية.

للمعاملات أدوار مختلفة

تحفظ المسماة الحالة والموضعية الوسائط والخاصة العدد والحالة. تختار ${10} العاشر وتختلف $10. تحفظ "$@" القائمة للتمرير. لا مسافات حول مساواة الإسناد. يحدد export ما يرثه الابن لا قراءة الصدفة. حدد قبول الغائب والفارغ والنص أو المعرف المقيد قبل الصياغة.

تغير النقطتان اختبار القيمة الغائبة

يستبدل ${name-default} الغائب فقط ويشمل ${name:-default} الفارغ. قد تسند الصيغ الأخرى بديلاً أو ترفض بتشخيص. لا تختصر دون قصد؛ قد يقبل عنوان اختياري بديلاً ويحتاج مسار خرج تحققاً. تدعم التوسعات المحروسة الاختيارية مع nounset ولا تجعل الخيار مخطط إدخال أو تثبت أمان غير الفارغ.

bash مقارنة الغائب والفارغ
unset label
printf 'unset=<%s>\n' "${label-fallback}"
label=''
printf 'empty-no-colon=<%s>\n' "${label-fallback}"
printf 'empty-colon=<%s>\n' "${label:-fallback}"
الناتج المتوقع
unset=<fallback>
empty-no-colon=<>
empty-colon=<fallback>

تعامل صيغة النقطتين وحدها الفارغ سبباً للبديل ولا تسند أي توسعة هنا قيمة جديدة.

تستخدم إزالة النص أنماطاً لا تعبيرات منتظمة

تزيل العمليات بادئة أو لاحقة بأقصر أو أطول نمط وتستبدل النص. تتبع أنماط الصدفة لا =~ المنتظم. عملية لاحقة المسار تحويل نص لا بحث أو تحقق أمان. اختبر النقاط والفواصل الغائبة والفارغ. بعض التحويلات امتدادات وتتأثر المحلية. اقتبس الناتج فلا يحميه التحويل تلقائياً من المراحل اللاحقة.

bash مقارنة إزالة أقصر وأطول لاحقة
name='lab.report.txt'
printf 'short=<%s> long=<%s>\n' "${name%.*}" "${name%%.*}"
printf 'suffix=<%s>\n' "${name##*.}"
الناتج المتوقع
short=<lab.report> long=<lab>
suffix=<txt>

يختلف مدى النمط بعلامة بالمئة أو اثنتين. تفحص العمليات السلسلة ولا تفتح ملفاً أو تنشئه.

التحقق من النص العددي قبل الحساب

تفسر الحسابات تعبيرات لا سلاسل عشرية فقط. قد تختلف المراجع والفهارس عن البيانات المقتبسة. حدد القواعد والمدى والأساس قبل الخارجي. للصفر البادئ معنى خاص فلا تحول المعرف لأساس آخر. لا تقيم العشوائي لاختبار العدد؛ ابدأ بفحص لفظي وعالج المدى والتجاوز. ليست حسابات Bash دقة غير محدودة أو عشريات مالية.

إظهار العقود عند الحدود

تحقق قرب الدخول ومرر المطبع لدوال صغيرة. تجنب افتراضات عامة تخفي خطأ المستدعي. التقط الحالة قبل التشخيص ووثق إعادة النص أو الحالة. ليس اسم متغير خارجي بيانات بريئة عند الإسناد غير المباشر؛ ندرسه لاحقاً. احفظ حالات الفارغ والغائب والمسافات والشرطة وغير العددي لتصون الصيانة العقد.

الأخطاء الشائعة وإصلاحها

استبدال فارغ مطلوب خفية

لماذا يحدث؟
اختيرت النقطتان دون سياسة للفراغ.
كيف تصلحه؟
ميز الغائب والفارغ بالتحقق.
كيف تتجنب تكراره؟
اكتب العقد قبل الافتراضيات.

قراءة نمط صدفة كتعبير منتظم

لماذا يحدث؟
اختلط تطابق المعامل و=~.
كيف تصلحه؟
استخدم اللغة الصحيحة واختبر الحدود.
كيف تتجنب تكراره؟
سم آلية التطابق في توثيق المساعد.

تقييم نص عددي خارجي مباشرة

لماذا يحدث؟
افتُرض أن التحليل تحقق عشري.
كيف تصلحه؟
تحقق من القواعد والمدى أولاً.
كيف تتجنب تكراره؟
افصل المعرفات والتعبيرات التنفيذية.

اختبر فهمك

1. اختر توسعة يكون فيها الفارغ صالحاً والغائب بحاجة بديل.

اعرض الحل المشروح

استخدم ${label-fallback} مقتبساً عند الاستخدام. يحفظ غير ذي النقطتين الفراغ الصريح؛ وافحص المطلوب الآخر بسياسة مستقلة.

2. لـ a.b.c قارن ${value%.*} و${value%%.*}.

اعرض الحل المشروح

تترك الأقصر a.b والأطول a. هي عمليات نص نمطية ولا تثبت وجود ملف أو سماح وجهة.

أهم ما تعلمته

  • اختر دلالة الغائب والفارغ والنمط والعدد صراحة.
  • تحقق عند الدخول واحفظ الاقتباس بعده.

المراجع الرسمية