التوسعات لإدارة المتغيرات الفارغة
تم تصميم العديد من توسعات المعلمات للتعامل مع المتغيرات غير الموجودة والفارغة. هذه التوسعات مفيدة للتعامل مع المعلمات الموضعية المفقودة وتعيين قيم الخطأ للمعلمات.
${المعلمة:-كلمة}
If المعلمة غير محدد (أي غير موجود) أو فارغ ، ينتج عن هذا التوسع قيمة كلمة. إذا المعلمة ليس فارغًا ، ينتج عن التوسع قيمة المعلمة.
[me @ linuxbox ~] $ فو =
[me @ linuxbox ~] $ صدى $ {foo: - "استبدال القيمة إذا لم يتم ضبطها"}
القيمة البديلة إذا لم يتم ضبطها [me @ linuxbox ~] $ صدى $ فو
[me @ linuxbox ~] $ foo = شريط
[me @ linuxbox ~] $ صدى $ {foo: - "استبدال القيمة إذا لم يتم ضبطها"}
شريط
[me @ linuxbox ~] $ صدى $ فو
شريط
[me @ linuxbox ~] $ فو =
[me @ linuxbox ~] $ صدى $ {foo: - "استبدال القيمة إذا لم يتم ضبطها"}
القيمة البديلة إذا لم يتم ضبطها [me @ linuxbox ~] $ صدى $ فو
[me @ linuxbox ~] $ foo = شريط
[me @ linuxbox ~] $ صدى $ {foo: - "استبدال القيمة إذا لم يتم ضبطها"}
شريط
[me @ linuxbox ~] $ صدى $ فو
شريط
${المعلمة:=كلمة}
If المعلمة غير محدد أو فارغ ، ينتج عن هذا التوسع قيمة كلمة. بالإضافة إلى ذلك ، فإن قيمة كلمة معين المعلمة. إذا المعلمة ليس فارغًا ، فالتوسع ينتج عنه قيمة المعلمة.
[me @ linuxbox ~] $ فو =
[me @ linuxbox ~] $ صدى $ {foo: = "القيمة الافتراضية إذا لم يتم ضبطها"}
القيمة الافتراضية إذا لم يتم ضبطها [me @ linuxbox ~] $ صدى $ فو القيمة الافتراضية إذا لم يتم ضبطها [me @ linuxbox ~] $ foo = شريط
[me @ linuxbox ~] $ صدى $ {foo: = "القيمة الافتراضية إذا لم يتم ضبطها"}
شريط
[me @ linuxbox ~] $ صدى $ فو
شريط
[me @ linuxbox ~] $ فو =
[me @ linuxbox ~] $ صدى $ {foo: = "القيمة الافتراضية إذا لم يتم ضبطها"}
القيمة الافتراضية إذا لم يتم ضبطها [me @ linuxbox ~] $ صدى $ فو القيمة الافتراضية إذا لم يتم ضبطها [me @ linuxbox ~] $ foo = شريط
[me @ linuxbox ~] $ صدى $ {foo: = "القيمة الافتراضية إذا لم يتم ضبطها"}
شريط
[me @ linuxbox ~] $ صدى $ فو
شريط
ملاحظة: لا يمكن تعيين المعلمات الموضعية والمعلمات الخاصة الأخرى بهذه الطريقة.
${المعلمة:?كلمة}
If المعلمة غير مضبوط أو فارغ ، يؤدي هذا التوسيع إلى إنهاء البرنامج النصي مع ظهور خطأ ومحتويات كلمة يتم إرسالها إلى الخطأ القياسي. لو المعلمة ليس فارغًا ، ينتج عن التوسع قيمة المعلمة.
[me @ linuxbox ~] $ فو =
[me @ linuxbox ~] $ صدى $ {foo:؟ "المعلمة فارغة"}
bash: foo: المعلمة فارغة [me @ linuxbox ~] $ صدى دولار؟
1
[me @ linuxbox ~] $ foo = شريط
[me @ linuxbox ~] $ صدى $ {foo:؟ "المعلمة فارغة"}
شريط
[me @ linuxbox ~] $ صدى دولار؟
0
[me @ linuxbox ~] $ فو =
[me @ linuxbox ~] $ صدى $ {foo:؟ "المعلمة فارغة"}
bash: foo: المعلمة فارغة [me @ linuxbox ~] $ صدى دولار؟
1
[me @ linuxbox ~] $ foo = شريط
[me @ linuxbox ~] $ صدى $ {foo:؟ "المعلمة فارغة"}
شريط
[me @ linuxbox ~] $ صدى دولار؟
0
${المعلمة:+كلمة}
If المعلمة غير محدد أو فارغ ، لا ينتج عن التوسيع أي شيء. لو المعلمة ليس فارغًا ، قيمة كلمة يتم استبدال ل المعلمة؛ ومع ذلك ، فإن قيمة المعلمة لم يتغير.
[me @ linuxbox ~] $ فو =
[me @ linuxbox ~] $ صدى $ {foo: + "القيمة البديلة إذا تم تعيينها"}
[me @ linuxbox ~] $ foo = شريط
[me @ linuxbox ~] $ صدى $ {foo: + "القيمة البديلة إذا تم تعيينها"}
[me @ linuxbox ~] $ فو =
[me @ linuxbox ~] $ صدى $ {foo: + "القيمة البديلة إذا تم تعيينها"}
[me @ linuxbox ~] $ foo = شريط
[me @ linuxbox ~] $ صدى $ {foo: + "القيمة البديلة إذا تم تعيينها"}
القيمة البديلة إذا تم ضبطها
القيمة البديلة إذا تم ضبطها