# درسنامه ۳-۵: شرط‌ها در Bash (if) در این درس یاد می‌گیریم چگونه با استفاده از شرط‌ها (`if`) در اسکریپت تصمیم بگیریم؛ مثلا اگر سن کاربر بالای ۱۸ بود یک پیام خاص و در غیر این صورت پیام دیگری نمایش دهیم. ## ساختار کلی if در Bash ساختار پایهٔ یک شرط: ```bash if [ شرط ] then دستورات اگر شرط درست بود else دستورات اگر شرط نادرست بود fi ``` نکته‌ها: - `fi` همان `if` برعکس است و پایان بلوک شرطی را مشخص می‌کند. - بین `[` و شرط و `]` باید فاصله بگذارید. ## مثال: بررسی سن کاربر ```bash #!/bin/bash read -p "سن شما چند ساله است؟ " AGE if [ "$AGE" -ge 18 ] then echo "You are an adult." else echo "You are not an adult yet." fi ``` در این‌جا: - `-ge` یعنی «بزرگ‌تر یا مساوی». - از کوتیشن `" "` برای متغیر استفاده کرده‌ایم تا اگر خالی بود، خطای عجیبی ندهد. ## مقایسهٔ عددی و متنی چند عملگر عددی رایج: - `-eq` مساوی - `-ne` نامساوی - `-gt` بزرگ‌تر - `-lt` کوچک‌تر - `-ge` بزرگ‌تر یا مساوی - `-le` کوچک‌تر یا مساوی مثال: ```bash if [ "$AGE" -lt 13 ]; then echo "Child" elif [ "$AGE" -lt 18 ]; then echo "Teenager" else echo "Adult" fi ``` برای مقایسهٔ رشته‌ای ساده: - `[ "$NAME" = "Ali" ]` یا `[ "$NAME" != "Ali" ]` ## مثال: بررسی آرگومان ```bash #!/bin/bash if [ -z "$1" ]; then echo "Please provide a name as an argument." echo "Example: bash script.sh Ali" exit 1 fi NAME="$1" echo "Hello $NAME!" ``` در این‌جا: - `-z "$1"` یعنی «آرگومان اول خالی است». - با `exit 1` اسکریپت را با کد خطا خاتمه می‌دهیم (در این مرحله فقط بدانید که ۰ یعنی موفق، غیر از آن یعنی خطا). ## تمرین کوتاه - اسکریپتی بنویسید که از کاربر سن را بپرسد و یکی از پیام‌های «کودک»، «نوجوان»، «بزرگسال» را نمایش دهد. - اسکریپتی بنویسید که یک عدد از کاربر بگیرد و بگوید زوج است یا فرد (راهنما: از عملگر `%` همراه با دستور `expr` یا `$(( ))` استفاده کنید؛ اگر هنوز با این‌ها آشنا نیستید، می‌توانید این تمرین را برای بعد نگه دارید). در درس بعد، با مجوزهای اجرایی (`chmod`) و روش‌های مختلف اجرای اسکریپت آشنا می‌شویم.