01-dan 08-gacha
Boshlanuvchilar uchun BASH - solishtiradigan narsalar
BASH tutorialining oldingi qismida biz shartli so'zlarni ko'rib chiqdik.
Ushbu qo'llanma juda uzoq edi, lekin mantiq oqimini qanday nazorat qilishni ko'rsatdi. Ushbu qo'llanma parametrlarni solishtirishning turli usullarini ko'rsatadi.
Yuqoridagi rasmda ushbu haftadagi qo'llanmada birinchi misol keltirilgan:
#! / Bin / bash
name1 = "gary"
name2 = "bob"agar ["$ name1" = "$ name2"]
keyin
echo "nomlar o'yin"
boshqa
echo "nomlar mos kelmaydi"
fi
Yuqoridagi skriptda nom1 va name2 deb nomlangan ikki o'zgaruvchini aniqladim va ularga "gary" va "bob" qiymatlarini tayinladim. Argumentlar tirnoq belgilari orasida joylashganligi sababli ular o'qituvchi sifatida davom etadigan magistral o'zgaruvchilari deb ataladi.
Barcha buyruq fayllari $ name1 va $ name2 qiymatlarini solishtirishadi va ular "nomlar mos keladigan" mag'lubiyatga mos tushadi va "nomlar mos kelmaydi" satrini chiqarmagan bo'lsa.
$ Name1 va $ name2 o'zgaruvchilar atrofidagi tirnoq belgilari muhimdir, chunki ularning birortasi qiymati o'rnatilmagan bo'lsa, skript hali ham ishlaydi.
Misol uchun, $ name1 hech qachon o'rnatilmagan bo'lsa, siz "" bob bilan "" solishtirasiz. Qo'shtirnoq belgilari bo'lmasa = "bob" bilan qoldirilgan bo'lardingiz.
Quyidagi tarzda teng emasligini aniqlash uchun =!
agar ["$ name1"! = "$ name2"]
02 of 08
Yangi boshlanuvchilar uchun qo'llanma BASH - solishtirish satrlari
Yuqoridagi misolda test bir xil ikkita satrni taqqoslaydi va savol bob bobdan alifboda kelmasligini so'raydi?
Darhaqiqat, javob yo'q.
Buyruq fayli operatordan kamroq (<) tanishtiriladi. Operatordan kamroq yo'naltirgich uchun ham foydalanilganda, uni "$ name1" \ <"$ name2" bilan taqqoslaganda yuqoridagi skriptda kamroq degani uchun, uni (\) yordamida qochishingiz kerak.
Bundan kam qarama-qarshilik, bundan kattaroqdir. \
Masalan
agar ["$ name1" \> "$ name2"]
03 dan 08 gacha
Yangi boshlanuvchilar uchun qo'llanma BASH - solishtirish satrlari
Agar o'zgaruvchining qiymatini tekshirishni xohlasangiz, quyidagi testdan foydalanishingiz mumkin:
agar [-n $ name2]
Yuqoridagi skriptda men $ name2 qiymatining berilganligini tekshirdim va agar u "bob yo'q bo'lsa, hech qachon bob ko'rinmagan" degan xabar yo'q.
04 of 08
Yangi boshlanuvchilar uchun qo'llanma BASH - solishtirish satrlari
O'tmishdagi slaydda, biz o'zgaruvchining belgilanganmi yoki yo'qmi, yo'qmi. Ba'zida o'zgaruvchi bo'lishi mumkin, lekin aslida qiymatga ega bo'lmasligi mumkin.
Masalan:
name1 = ""
O'zgaruvchining qiymati yoki yo'qligini tekshirish uchun (ya'ni, nolinchi uzunligi bor) quyidagicha foydalaniladi -z:
agar [-s $ name1]
Yuqoridagi skriptda men $ name1 ni nol uzunlikdagi magistralga belgiladim va uni -z bilan solishtirgandim. Agar $ name1 uzunligi nol bo'lsa, "gari kechqurun chiqdi" degan xabar ko'rsatiladi.
05 of 08
Boshlanuvchilar uchun BASH - raqamlarni solishtirish
Shu paytgacha barcha taqqoslar satrlar uchun qilingan. Raqamlar bilan taqqoslash haqida nima deyish mumkin?
Yuqoridagi skript ikki raqamni taqqoslashning misolini ko'rsatadi:
#! / Bin / bash
a = 4
b = 5agar [$ a = $ b]
keyin
echo "4 = 5"
boshqa
echo "4 teng emas 5"
fi
Bir o'zgaruvchining raqam bo'lishini belgilash uchun uni tirnoqsiz belgilang. Keyinchalik raqamlarni teng ko'rsatkich bilan solishtirishingiz mumkin.
Ammo ikkita raqamni solishtirish uchun quyidagi operatordan foydalanishni afzal ko'raman:
Agar [$ a -eq $ b]
06 dan 08 gacha
Boshlanuvchilar uchun BASH - raqamlarni solishtirish
Raqamning boshqa raqamdan kamligini aniqlashni istasangiz, operatordan kamroq (<) foydalanishingiz mumkin. Ip bilan bo'lgani kabi, operatordan kamroq qochish kerak. (\ <).
Raqamlarni taqqoslashning eng yaxshi usuli quyidagicha amalga oshiriladi:
- Kamidan-lt
- Kamidan kam yoki teng
- -gt dan katta
- Katta yoki teng kattalikdagi
Masalan:
agar [$ a -lt $ b]
agar [$ a -le $ b]
agar [$ a -ge $ b]
agar [$ a-gt $ b]
08 of 08
Boshlanuvchilar uchun BASH - raqamlarni solishtirish
Nihoyat, ushbu qo'llanmada siz ikkita raqamning farqli bo'lishini tekshirishni istasangiz, operatorlardan (yoki <>) yoki (yoki) quyidagi kabi foydalanishingiz mumkin:
agar [$ a <> $ b]
agar [$ a -ne $ b]
08 of 08
Boshlanuvchilar uchun BASH - solishtirish operatorlariga - Xulosa
Ushbu qo'llanmaning dastlabki uch qismini soqit qilsangiz, ularni quyidagi havolalarni bosish orqali topishingiz mumkin:
Qo'llanma keyingi qismida arifmetikani qamrab olaman.