Qanday qilib Bash-skriptda IF-bayonotlarini yozish

Buyruqlar, sintaksis va misollar

Shartli iboraning bir turi bo'lgan if-statement bilan siz belgilangan shartlarga qarab turli harakatlar qilishingiz mumkin. Bu tizimni qaror qabul qilish qobiliyatini samarali beradi.

Agar if-statementning eng oddiy shakli misol bo'la oladi:

agar [$ count == 5] bo'lsa, u holda "$ count" fi-ni echib oling

Ushbu misolda "count" o'zgarmaydigan if-ifodasining bir qismi sifatida ishlatiladigan shartni belgilash uchun ishlatiladi. If-statement bajarilmasdan oldin, "count" o'zgaruvchiga "5" qiymati beriladi. If-statement keyinchalik "count" qiymatining "5" ekanligini tekshiradi. Agar shunday bo'lsa, "then" va "fi" kalit so'zlari orasidagi so'zlar bajariladi, aks holda if-statementdan so'ng har qanday so'zlar bajariladi. "Fi" so'zining ma'nosi "if" degan ma'noni anglatadi. Bash scripting tili bu kontseptsiyani murakkab ifodaning oxirini belgilash uchun ishlatadi, masalan, if-statement yoki case-statements.

"Echo" so'zi argumentni, bu holda, o'zgaruvchining "hisoblash" qiymatini terminal oynasiga yozadi. If-ifodaning kalit so'zlari o'rtasida kodning chegaralanishi okunabilirliği yaxshilaydi, lekin kerak emas.

Kodning bir qismi faqatgina shart to'g'ri bo'lmasa bajarilishi kerak bo'lgan vaziyatga ega bo'lsangiz, ushbu misoldagi kabi if-statementda "else" kalit so'zidan foydalanishingiz mumkin:

agar [$ count == 5] bo'lsa, count = 5 bo'lsa, "$ count" aksi echo "count 5" emas

Agar "$ count == 5" sharti to'g'ri bo'lsa, tizim o'zgarmaydigan "count" qiymatini yozishga to'g'ri keladi, aks holda "count not 5" satrini yozadi.

Agar siz bir nechta shartlarni farqlashni istasangiz, ushbu misoldagi kabi "else if" dan olingan "elif" kalit so'zidan foydalanishingiz mumkin:

agar [$ count == 5] bo'lsa, "count count besh" elif [$ count == 6] "echo" soni "olti" bo'lsa, "yuqorida hech biri"

Agar "hisoblash" qiymati "5" bo'lsa, tizim "soniya besh" deb yozib chiqadi. Agar "count" "5" emas, "6" bo'lsa, tizim "soniya olti" ni bosib chiqaradi. Agar u "5" yoki "6" bo'lmasa, tizim "yuqoridagilarning hech birini" yozishga imkon bermaydi.

Siz taxmin qilganingizdek, biron bir "elif" moddasi bo'lishi mumkin. Ko'p "elif" shartlariga misol bo'la oladi:

agar [$ count == 5] "count" besh "elif [$ count == 6] echo bo'lsa," count is olti "elif [$ count == 7], so'ngra echo" count is seven "elif [$ count = = 8], so'ngra "sakkizta sakkiz" elif [$ count == 9] aks etsa, "soniya to'qqiz" aks etsa, yuqorida "hech biri"

Bunday bayonotlarni bir nechta shartlar bilan yozishning yanada ixcham usullaridan biri odatiy usuldir. Agar "ifive" ga o'xshash bir nechta "elif" iboralari bilan ishlaydi, ammo undan qisqartirilsa. Masalan, yuqoridagi kod parchasi quyidagi "case" iborasi bilan qayta yozilishi mumkin:

"$ count" holatida 5) echo "count is besh"; 6) echo "soniya olti"; 7) echo "soniya yetti"; 8) "soniya sakkiz" deb aks ettiriladi; 9) echo "soniya to'qqiz"; *) "Yuqorida hech qanday esk" echosini aks ettirish

Ushbu misolda bo'lgani kabi, if-statements- for-loops yoki while-loops ichida ishlatiladi:

[$ count -le 9] 1 sonini (= count ++) = [$ count == 5] bo'lsa, $ count = 1 amalga oshiriladi = echo tugagan

Bundan tashqari, if deyilgan joylarni ham kiritishingiz mumkin. Eng oddiy ichki if deyim formada: agar ... keyin ... else ... agar ... agar ... fi ... fi. Biroq, if-statement ifodasini o'zboshimchalik bilan murakkablashtirishi mumkin.

Bundan tashqari, argumentlarni buyruq satridan o'tgan parametrlarni qayta ishlash uchun shartlarni qanday ishlatishni ko'rsatadigan boshli skriptga qanday o'tishni ko'ring.

Bash qobig'i boshqa dasturiy tuzilmalarini, masalan, for-loops , while-loops , va arifmetik ifodalarni beradi .