المنطق في Bash Scripting: الشروط والحلقات عمليًا

بعد كتابة أول سكربت Bash، الخطوة التالية هي إضافة المنطق: قرارات، تكرار، وحالات متعددة.

في هذا الدرس ستتعلم الشروط والحلقات بطريقة عملية قابلة للاستخدام مباشرة.

لماذا نحتاج المنطق في Bash Scripting؟

  • اتخاذ قرار حسب المدخلات أو حالة النظام
  • تكرار أوامر على ملفات أو خوادم متعددة
  • بناء سكربتات ديناميكية بدل أوامر ثابتة

الشرط if الأساسي في Bash

#!/bin/bash
AGE=20

if [ "$AGE" -ge 18 ]; then
  echo "Adult"
fi

تذكر وضع مسافات داخل الأقواس [ ].

استخدام if / else / elif

#!/bin/bash
SCORE=75

if [ "$SCORE" -ge 90 ]; then
  echo "Excellent"
elif [ "$SCORE" -ge 70 ]; then
  echo "Good"
else
  echo "Needs improvement"
fi

أشهر معاملات المقارنة في Bash

المعامل المعنى
-eq يساوي (أرقام)
-ne لا يساوي
-gt أكبر من
-lt أصغر من
-ge أكبر أو يساوي
-le أصغر أو يساوي

اختبار النصوص والملفات في الشروط

if [ -f "/etc/passwd" ]; then
  echo "File exists"
fi

if [ -d "/var/log" ]; then
  echo "Directory exists"
fi

if [ -z "$NAME" ]; then
  echo "NAME is empty"
fi

الحلقة for في Bash

for USER in ali sara omar; do
  echo "Hello $USER"
done

مثال على نطاق رقمي:

for i in {1..5}; do
  echo "Run $i"
done

الحلقة while في Bash

COUNT=1
while [ "$COUNT" -le 3 ]; do
  echo "Count: $COUNT"
  COUNT=$((COUNT + 1))
done

مناسبة عندما لا تعرف عدد التكرارات مسبقًا.

الاختيار المتعدد باستخدام case

read -p "Choose env (dev/prod): " ENV

case "$ENV" in
  dev)
    echo "Development mode"
    ;;
  prod)
    echo "Production mode"
    ;;
  *)
    echo "Unknown option"
    ;;
esac

استخدام المنطق مع Arguments

#!/bin/bash

if [ "$#" -lt 1 ]; then
  echo "Usage: $0 start|stop"
  exit 1
fi

case "$1" in
  start) echo "Starting service..." ;;
  stop)  echo "Stopping service..." ;;
  *)     echo "Invalid option" ;;
esac
نصيحة: ابدأ بفحص المدخلات مبكرًا في السكربت لتجنب أخطاء لاحقة.

تمرين عملي: سكربت قرار + حلقة

#!/bin/bash
read -p "Enter number: " N

if [ "$N" -gt 10 ]; then
  echo "Greater than 10"
else
  echo "10 or less"
fi

for i in {1..3}; do
  echo "Loop $i"
done

إذا نفذ الشرط بشكل صحيح وطبع الحلقة 3 مرات، فأنت أتقنت أساس المنطق في Bash.

FAQ: أسئلة شائعة حول Bash Logic

كيف أكتب شرط if في Bash؟

تكتب if ثم شرط داخل [ ] ثم then والأوامر، ويمكن إضافة else وelif حسب الحاجة.

ما الفرق بين for وwhile في Bash؟

for مناسبة للتكرار على قائمة عناصر أو نطاق، بينما while تعتمد على شرط يستمر طالما كان صحيحا.

متى أستخدم case بدل if؟

case أفضل عندما لديك عدة حالات لقيمة واحدة مثل خيارات menu أو arguments محددة.

الخطوة التالية

في الدرس القادم سنتعلم كتابة Functions داخل Bash لتنظيم السكربتات.

التالي: Bash Functions
المحرر الذكي

اكتب الكود وشاهد النتيجة فوراً

جرب الآن مجاناً
قناة ديف عربي

تابع أحدث الدروس والتحديثات مباشرة على واتساب

انضم الآن