المتغيرات
Variables
المتغيرات — Variables
المتغير في Bash اسم يشير إلى نص. حتى لو وضعت رقماً مثل 42 فهو في الأصل نص، ثم تستخدمه في حسابات بطريقة معينة. أبسط إسناد هو name="AzLearn". لا توجد مسافات حول علامة =. هذه نقطة مهمة: name = "AzLearn" ليس إسناداً في Bash، بل محاولة لتشغيل أمر اسمه name مع معاملات.
لقراءة المتغير تكتب $name أو الأفضل في النصوص المركبة: ${name}. عند الطباعة أو تمرير المتغير إلى أمر، اقتبسه: "$name". الاقتباس يحافظ على المسافات والرموز. لو كانت القيمة Bash Course وكتبت $name بدون اقتباس، قد يراها الأمر ككلمتين. هذه ليست مشكلة شكلية؛ قد تغير معنى أمر مثل rm أو cp.
Bash تملك أيضاً قيماً افتراضية مفيدة. التعبير ${name:-Guest} يعني: إذا كان name فارغاً أو غير معرف، استخدم Guest. هذا ممتاز للسكربتات التي تقبل معاملات اختيارية. لكن لا تستخدم القيم الافتراضية لإخفاء أخطاء مهمة. إذا كان السكربت يحتاج مساراً ضرورياً، الأفضل أن تفشل برسالة واضحة.
مثال عملي
لاحظ أن lessons=52 لا يستخدم مسافة. ولو أردنا الحساب لاحقاً سنستخدم الصيغة الحسابية $((lessons + 1)). أما الطباعة العادية فتتعامل مع القيمة كنص.
أخطاء شائعة
الخطأ الأول هو المسافة حول =. الخطأ الثاني هو نسيان الاقتباس. الخطأ الثالث هو استخدام اسم غير واضح مثل x في سكربت طويل. في Bash، الأسماء الواضحة مهمة لأنها تعوض ضعف نظام الأنواع. اكتب backup_dir بدلاً من d، وtarget_file بدلاً من f.