Boshlanuvchilar uchun BASH - solishtiradigan narsalar

01-dan 08-gacha

Boshlanuvchilar uchun BASH - solishtiradigan narsalar

BASH ta'limi - qatorlarni taqqoslash.

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

BASH ta'limi - qatorlarni taqqoslash.

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. \ o'rniga ishlatish o'rniga.

Masalan

agar ["$ name1" \> "$ name2"]

03 dan 08 gacha

Yangi boshlanuvchilar uchun qo'llanma BASH - solishtirish satrlari

BASH ta'limi - qatorlarni taqqoslash.

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

BASH ta'limi - qatorlarni taqqoslash.

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

BASH Tutorial - 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 = 5

agar [$ 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

BASH Tutorial - 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:

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

BASH Tutorial - 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.