БASH-д зориулсан эхлэл гарын авлага - Асуудлыг харьцуулах

01-ийн 08

БASH-д зориулсан эхлэл гарын авлага - Асуудлыг харьцуулах

BASH Tutorial - Үзүүлэлтүүдийг харьцуулах.

BASH-ийн өмнөх хичээл дээр бид нөхцөлт мэдэгдлийг харсан.

Уг гарын авлага нь маш урт байсан боловч логик урсгалыг хэрхэн хянахыг харуулсан. Энэ гарын авлага нь хувьсах хэмжигдэхүүнүүдийг харьцуулж болох өөр өөр аргуудыг харуулж байна.

Дээрх зургийг энэ долоо хоногийн хөтөчийн эхний жишээг харуулав:

#! / bin / bash

name1 = "gary"
name2 = "bob"

хэрэв ["$ name1" = "$ name2"]
Дараа нь
echo "нэр таарах"
өөрөөр хэлбэл
echo "нэр таарахгүй"
fi


Дээрх скриптэд би name1 ба name2 гэж нэрлэгдсэн хоёр хувьсагчийг тодорхойлж тэдэнд "gary" ба "bob" гэсэн утгуудыг өгсөн. Заах функцүүдийн хоорондох хувьсагчууд нь string хувьсагчууд гэж нэрлэгддэг тул энэ нь хичээлийг үргэлжлүүлэн хийдэг.

Бүх скрипт нь $ name1 болон $ name2-ийн утгыг харьцуулах бөгөөд тэдгээр нь гаралтад "нэрс таарч байгаа" гэсэн мөрийг харьцуулах бөгөөд хэрэв тэдгээр нь "нэрс таарахгүй" гэсэн тэмдэгт мөрийг гаргаагүй бол.

$ Name1 болон $ name2 хувьсагчийн эргэн тойрон дахь ишлэл тэмдэг нь чухал байдаг. Учир нь хэрэв тэдгээрийн аль нэг утга нь тохируулагдаагүй бол скрипт ажиллах болно.

Жишээ нь $ name1 хэзээ ч тогтоогдоогүй бол "bob" -тай харьцуулах болно. Үнийн тэмдэглэгээ байхгүй бол = "bob" гэсэн утгатай үлдсэн нь тодорхойгүй байна.

Та мөн! = Тэмдэглэгээг дараах байдлаар ашиглаж болно:

хэрэв ["$ name1"! = "$ name2"]

02 of 08

BASH-ийн эхлэл гарын авлага - Үзүүлэлтүүдийг харьцуулах

BASH Tutorial - Үзүүлэлтүүдийг харьцуулах.

Дээрх жишээнд энэ тест нь ижил хоёр тэмдэгтийг харьцуулж, толгойн үсгийн өмнө bob-ыг хайж байгаа эсэхийг асууна уу?

Хариулт нь үгүй.

Скрипт нь оператороос бага (<). Оператороос доогуур нь дахин чиглүүлэлт хийхэд ашигладаг учраас та үүнийг "slash (\)" гэсэн үгнээс хасахын тулд "$ name1" \ <"$ name2" -г харьцуулсан болно.

Харьцангуй багатай эсрэг нь тодорхой байна. \ <Ашиглах \> ашиглахын оронд.

Жишээлбэл

хэрэв ["$ name1" \> "$ name2"]

03 of 08

BASH-ийн эхлэл гарын авлага - Үзүүлэлтүүдийг харьцуулах

BASH Tutorial - Үзүүлэлтүүдийг харьцуулах.

Хэрэв та хувьсагч утгатай эсэхийг шалгахыг хүсвэл та дараахь шалгалтыг ашиглаж болно:

Хэрэв [-n $ name2]

Дээрх скрипт дээр $ name2 нь үнэлэгдсэн эсэхийг шалгасан бөгөөд хэрэв "Боб байхгүй бол bob гарч хэзээ ч байгаагүй" гэсэн зурвас биш юм.

04 - 08

BASH-ийн эхлэл гарын авлага - Үзүүлэлтүүдийг харьцуулах

BASH Tutorial - Үзүүлэлтүүдийг харьцуулах.

Өмнөх слайд дээр хувьсагч тохируулагдсан эсэхийг шалгасан. Заримдаа хувьсагч тохируулж болох боловч үнэндээ үнэндээ байж болох юм.

Жишээ нь:

name1 = ""

Хувьсагч утгатай эсэх (өөрөөр хэлбэл, тэгийн урттай) -z -г дараах байдлаар хэрэглэнэ:

Хэрэв [-z $ name1]

Дээрх скрипт дээр $ name1-г тэгийн урттай мөр болгон тохируулж дараа нь үүнийг -z тушаалаар харьцуулсан болно. Хэрэв $ name1 урттай тэг бол "оройн хоол" гэсэн гарчиг гарч ирнэ.

05 - 08

BASH-д зориулсан эхлэлийн гарын авлага - Тоонуудыг харьцуулах

BASH заавар - Тоонуудыг харьцуулах.

Одоогоор бүх харьцуулалтууд нь чавхдаст байна. Тоонуудыг яаж харьцуулах вэ?

Дээрх скрипт хоёр тоог харьцуулах жишээг харуулав:

#! / bin / bash

a = 4
b = 5

хэрэв [$ a = $ b]
Дараа нь
echo "4 = 5"
өөрөөр хэлбэл
echo "4 5-тэй тэнцүү биш"
fi

Хувьсах тоог хувьсагч болгохын тулд заагчийн дугаарыг заана. Дараа нь тоонуудыг тэнцүү тэмдэгтэй харьцуулж болно.

Гэхдээ хоёр тоог харьцуулахын тулд дараах операторыг ашиглахыг илүүд үзэж байна.

Хэрэв [$ a-aq $ b]

06 - 08

BASH-д зориулсан эхлэлийн гарын авлага - Тоонуудыг харьцуулах

BASH заавар - Тоонуудыг харьцуулах.

Хэрэв та тоо өөр дугаараас бага байгаа эсэхийг харьцуулахын тулд та оператороос бага (<) -ийг ашиглаж болно. Чиглэлүүдийн хувьд та налуу зураастай оператороос бага зайлсхийх хэрэгтэй. (\ <).

Тоонуудыг харьцуулах илүү сайн арга бол дараах тэмдэглэгээг ашиглах явдал юм:

Жишээлбэл:

хэрэв [$ a -lt $ b]

хэрэв [$ a -le $ b]

хэрэв [$ a- $ b $]

хэрэв [$ a -gt $ b]

07-ийн 08

BASH-д зориулсан эхлэлийн гарын авлага - Тоонуудыг харьцуулах

BASH заавар - Тоонуудыг харьцуулах.

Эцэст нь энэ гарын авлагад хоёр тоог ялгаатай эсэхийг шалгахыг хүсвэл операторуудаас (<>) эсвэл -ne-ээс бага, эсвэл дараахь байдлаар хэрэглэж болно:

хэрэв [$ a <> $ b]

Хэрэв [$ a -ne $ b]

08 of 08

BASH-ийн эхлэл гарын авлага - Харьцуулах операторууд - Дүгнэлт

Хэрэв та энэ гарын авлагын эхний гурван хэсгийг алдсан бол дараах холбоос дээр дарж олж болно:

Гарын авлагын дараагийн хэсэгт би арифметикийг хамрах болно.