تصمیمگیری در اسکریپت
برای اجرای شرطی بخشی از کد، از ساختار 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 تا زمانی که شرط برقرار باشد (در اینجا وجود فایل قفل) ادامه پیدا میکند؛ این الگو در اسکریپتهای انتظار برای آماده شدن یک سرویس بسیار رایج است.