فصل ششم: اسکریپت‌نویسی مقدماتی با bash

شرط‌ها و حلقه‌ها در bash

تصمیم‌گیری در اسکریپت

برای اجرای شرطی بخشی از کد، از ساختار if استفاده می‌کنیم. نحو bash کمی با زبان‌های دیگر متفاوت است و فاصله‌ها اهمیت دارند:

#!/bin/bash

if [ -f "config.yaml" ]; then
    echo "فایل تنظیمات پیدا شد"
else
    echo "فایل تنظیمات موجود نیست!"
    exit 1
fi

if [ "$1" == "production" ]; then
    echo "در حال دیپلوی به محیط تولید"
elif [ "$1" == "staging" ]; then
    echo "در حال دیپلوی به محیط آزمایشی"
else
    echo "محیط نامشخص است"
fi

-f بررسی می‌کند آیا مسیر مشخص‌شده یک فایل معتبر است؛ فلگ‌های مشابه دیگر شامل -d برای بررسی وجود پوشه و -z برای بررسی خالی بودن یک رشته هستند. exit 1 اسکریپت را با کد خطا متوقف می‌کند که در اسکریپت‌های اتوماسیون بزرگ‌تر برای تشخیص شکست یک مرحله استفاده می‌شود.

تکرار با حلقه‌ها

for file in *.log; do
    echo "در حال پردازش $file"
done

for i in 1 2 3 4 5; do
    echo "تلاش شماره $i"
done

while [ -f "lock.txt" ]; do
    echo "منتظر آزاد شدن قفل..."
    sleep 2
done

حلقه‌ی for اول روی همه‌ی فایل‌های با پسوند .log در پوشه‌ی فعلی تکرار می‌شود. حلقه‌ی while تا زمانی که شرط برقرار باشد (در اینجا وجود فایل قفل) ادامه پیدا می‌کند؛ این الگو در اسکریپت‌های انتظار برای آماده شدن یک سرویس بسیار رایج است.

برای ذخیره‌ی پیشرفت و شرکت در آزمون، وارد شوید — رایگان است.