عملگرها (Operators)
عملگرهای بش یعنی نشانه هایی برای مقایسه، حساب، منطق و بررسی فایل. با آن ها اسکریپت هوشمند می نویسی؛ مثل قوانین بازی که نتیجه را تعیین می کنند.
مقایسه عددی (Comparison)
برای اعداد از -eq، -ne، -lt، -le، -gt و -ge استفاده کن. این ها در شرط ها نتیجه درست یا نادرست می دهند.
a=5
b=7
if [ $a -lt $b ]; then
echo "a کوچکتر است"
fi
if [ $b -ge 7 ]; then
echo "b حداقل هفت است"
fi
مقایسه رشته ای (String)
برای متن از = و != استفاده کن. همچنین < و > بر اساس ترتیب ASCII مقایسه می کنند.
name="amir"
if [ "$name" = "amir" ]; then
echo "سلام امیر"
fi
if [ "$name" != "reza" ]; then
echo "نام، رضا نیست"
fi
عملگرهای حسابی (Arithmetic)
برای جمع، تفریق، ضرب، تقسیم و باقیمانده از +، -، *، / و % استفاده کن.
x=9
y=4
sum=$((x + y))
mod=$((x % y))
echo $sum
echo $mod
نکته: توان را مستقیم نداریم. برای توان از bc یا awk کمک بگیر.
منطقی ها (Logical)
برای ترکیب شرط ها از && ، || و ! استفاده کن. این ها مثل و، یا، نقیض هستند.
age=16
score=90
if [ $age -ge 15 ] && [ $score -gt 80 ]; then
echo "شرایط عالی است"
fi
if ! [ $score -lt 50 ]; then
echo "نمره قابل قبول است"
fi
آزمون فایل (File Test)
برای فایل ها از -e، -d، -f و -s استفاده کن. وجود، پوشه بودن، معمولی بودن و خالی نبودن را می سنجند.
path="./notes.txt"
if [ -e "$path" ]; then
echo "فایل وجود دارد"
fi
if [ -f "$path" ] && [ -s "$path" ]; then
echo "فایل معمولی و غیرخالی است"
fi
گام های عملی سریع
- دو عدد تعریف کن و با -gt مقایسه کن.
- دو رشته بساز و نابرابری را چک کن.
- یک شرط && با دو مقایسه بنویس.
- وجود یک فایل را با -e بررسی کن.
برای پیش نیازها به انواع داده سر بزن. همچنین شرط ها در بش ادامه طبیعی عملگرها است.
جمع بندی سریع
- مقایسه عددی با -eq و دوستان.
- رشته ها با = و != سنجیده می شوند.
- حساب ساده با $((…)) انجام می شود.
- منطقی ها شرط ها را ترکیب می کنند.
- آزمون فایل وضعیت فایل را می گوید.