الدرس 19: سكربتات Shell
أمر tar من الدرس السابق يعمل — لكن عندما يُشغَّل داخل cron لا يمكنك معرفة ما إذا نجح. نغلّفه داخل سكربت bash: #!/bin/bash في السطر الأول يحدد أي مفسّر يُستخدَم. DEST=/backups يعرّف متغيرًا؛ $DEST يستخدمه. chmod +x backup.sh يضيف صلاحية التنفيذ. $? بعد الأمر يُعيد 0 عند النجاح أو رمز خطأ غير صفري عند
السكربت مثل وصفة مكتوبة: #!/bin/bash يقول 'اطبخ هذا باستخدام bash'، و chmod +x يمنح صلاحية الطبخ. DEST=/backups يحفظ عنوانًا على ورقة، و $DEST يقرأ تلك الورقة. $? هو تذوّق الطعم في النهاية — 0 يعني أنه خرج لذيذًا.
- shebang (#!/bin/bash)
- السطر الأول من السكربت — يحدد أي مفسّر يشغّله. #! يميّزه، و /bin/bash هو المسار إلى bash. بدون shebang، يخمّن نظام التشغيل المفسّر.
- متغير bash
- NAME=value يعرّف (بدون مسافات). $NAME يقرأ القيمة. "$NAME" بين علامتَي اقتباس مزدوجتين يحمي من word splitting إذا احتوت القيمة على مسافات.
- رمز الخروج ($?)
- رمز يُعيده كل أمر: 0 = نجاح، أي قيمة أخرى = فشل. $? يحمل رمز الأمر الأخير. يجب قراءته فورًا قبل أن يدهسه أمر آخر.
- chmod +x
- يضيف صلاحية التنفيذ إلى السكربت. بدونها، يُعيد ./script.sh 'Permission denied'. chmod +x script.sh يمكّن ./script.sh؛ bash script.sh يعمل أيضًا بدون chmod +x.