الدرس 20: الشروط في Bash
ينشئ السكربت من الدرس السابق نسخة احتياطية — لكنه لا يبلّغ عمّا إذا نجح. سنضيف إليه شرط if. [ -f file ] يختبر وجود الملف؛ [ -d dir ] يختبر وجود المجلد؛ [ $? -eq 0 ] يختبر رمز الخروج. [ أمر حقيقي — المسافات مطلوبة قبل كل وسيط وبعده. then يفتح الكتلة، و fi يغلقها. && يربط شرطين — يجب أن ينجح كلاهما.
if هو ببساطة 'إذا': [ -f ] يسأل 'هل الملف موجود؟'، وthen تعني 'عندئذٍ'، وfi يغلق الكتلة — إنه ببساطة if مكتوبة بالمقلوب. شيء واحد يجب تذكّره: [ ] أمر قائم بذاته، لذا يحتاج إلى مسافات حوله مثل أي أمر.
- if في bash
- if [ condition ]; then ... fi. [ ] يُرجع رمز الخروج 0 (true) أو 1 (false). then يفتح جسم الكتلة. fi (=if بالمقلوب) يغلقها. else في سطر منفصل صالح لكتلة بديلة.
- معاملات test
- -f: ملف عادي موجود. -d: مجلد موجود. -e: مسار موجود (أي نوع). -eq: يساوي (أرقام). -ne: لا يساوي. -z: سلسلة فارغة. -n: سلسلة غير فارغة.