Бастауыш нұсқаулық BASH - заттармен салыстыру

01-ден 08-ге дейін

Бастауыш нұсқаулық BASH - заттармен салыстыру

BASH Tutorial - Сілтемелерді салыстыру.

BASH оқыту құралының алдыңғы бөлігінде шартты мәлімдемелерді қарастырдық .

Бұл нұсқа өте ұзын, бірақ логика ағынын қалай басқаруға болатындығын көрсетті. Бұл нұсқаулық айнымалы мәндерді салыстырудың түрлі жолдарын көрсетеді.

Жоғарыдағы суретте осы аптадағы нұсқадағы алғашқы мысал көрсетілген:

#! / bin / bash

name1 = «gary»
name2 = «bob»

егер [«$ name1» = «$ name2»]
содан кейін
echo «атаулар сәйкес»
басқа
echo «атаулар сәйкес емес»
fi


Жоғарыда келтірілген сценарийде name1 және name2 атты екі айнымалы мәнді анықтадым және оларға «gary» және «bob» мәндерін тағайындадым. Айнымалылар тырнақшалар арасында болғандықтан, оларды үйреншік ретінде жалғастыратын жол айнымалылары деп атайды.

Барлық сценарий $ name1 және $ name2 мәндерін салыстырады және олар «аттар сәйкес келеді» жолына сәйкес келеді және «аттар сәйкес емес» жолын шығармаса.

$ Name1 және $ name2 айнымалы мәндерінің айналасында тырнақшалар маңызды, себебі олардың біреуінің мәні орнатылмаған болса, сценарий әлі де жұмыс істей береді.

Мысалы, егер $ name1 ешқашан орнатылмаса, онда сіз «bob» -мен салыстырасыз. Сіз тырнақша белгілерінсіз = «bob» -нда қалдырсаңыз, ол анық түрде орындалмайды.

Сондай-ақ, төмендегідей тең емес анықтау үшін =!

егер [«$ name1»! = «$ name2»]

02/08

Бастауышқа арналған нұсқаулық BASH - схемаларды салыстыру

BASH Tutorial - Сілтемелерді салыстыру.

Жоғарыда келтірілген мысалда сынақ сол екі жолды салыстырады және сұраным алфавиттегі bob-ге дейін барады деп сұрайды?

Әрине, жауап жоқ.

Сценарий оператордан аз (<) енгізеді. Оператордан аз болса, қайта бағыттау үшін пайдаланылатындықтан, оны «$ name1» \ <«$ name2» деп салыстырғандағы скриптте төмендеуі үшін оның қиғаш сызығымен (\) қашу керек.

Қарама-қарсы қарағанда әлдеқайда көп. \ <Пайдалану> орнына қолданыңыз.

Мысалға

егер [«$ name1» \> «$ name2»]

03 08

Бастауышқа арналған нұсқаулық BASH - схемаларды салыстыру

BASH Tutorial - Сілтемелерді салыстыру.

Айнымалы мәннің бар-жоғын тексергіңіз келсе, келесі сынақты қолдана аласыз:

егер [-n $ name2]

Жоғарыда келтірілген сценарийде мен $ name2 мәнінің берілуін тексердім, егер ол «Bob жоқ болса, боб ешқашан пайда болмады» деген хабарлама болмаса.

08 04

Бастауышқа арналған нұсқаулық BASH - схемаларды салыстыру

BASH Tutorial - Сілтемелерді салыстыру.

Бұрынғы слайдта айнымалы мән орнатылған немесе орнатылмаған. Кейде айнымалы мән берілсе де, шын мәнінде мән болмауы мүмкін.

Мысалы:

name1 = «»

Айнымалы мәннің бар-жоқтығын тексеру үшін (яғни ұзындығы нөлге тең) -z мынадай түрде пайдаланыңыз:

егер [-z $ name1]

Жоғарыда келтірілген сценарийде $ name1 нөлдік ұзындық жолына орнатып, оны -z көмегімен салыстырдым. Егер $ name1 ұзындығы нөлге тең болса, «gary кешке шыққан» хабары көрсетіледі.

05 of 08

Бастауыш нұсқаулық BASH - салыстырмалы сандар

BASH Tutorial - Сандарды салыстыру.

Осы уақытқа дейін барлық салыстырулар сызықтарға арналған. Сандарды салыстыру туралы не айтасыз?

Жоғарыда келтірілген сценарий екі санды салыстырудың мысалын көрсетеді:

#! / bin / bash

a = 4
b = 5

егер [$ a = $ b]
содан кейін
echo «4 = 5»
басқа
echo «4 тең емес 5»
fi

Айнымалы мәнді нөмір етіп қою үшін оны тырнақшасыз орнатыңыз. Содан кейін сандарды теңдік белгісімен салыстыруға болады.

Мен екі операторды салыстыру үшін келесі операторды пайдаланғым келеді:

Егер [$ a -eq $ b]

08 08

Бастауыш нұсқаулық BASH - салыстырмалы сандар

BASH Tutorial - Сандарды салыстыру.

Санның басқа нөмірден аз екенін салыстырғыңыз келсе, оператордан аз (<) пайдалануға болады. Сілтемелерде болғандай, оператордан аз қашуға тура келеді. (\ <).

Сандарды салыстырудың ең жақсы жолы - келесі белгілерді қолдану:

Мысалға:

егер [$ a -lt $ b]

егер [$ a -le $ b]

егер [$ a -ge $ b]

егер [$ a -gt $ b]

08 07

Бастауыш нұсқаулық BASH - салыстырмалы сандар

BASH Tutorial - Сандарды салыстыру.

Соңында, осы нұсқаулық үшін, егер сіз екі санның айырмашылығы бар екенін тексергіңіз келсе, операторлармен бірге (<>) немесе төмендегідей төмен немесе үлкенірек пайдалануға болады:

егер [$ a <> $ b]

егер [$ a -ne $ b]

08 08

Бастауыш нұсқаулық - BASH - салыстыру операторлары - жиынтық

Егер осы нұсқаулықтың алғашқы үш бөлігін жіберіп алмасаңыз, оларды төмендегі сілтемелерді басу арқылы таба аласыз:

Мен басшылықтың келесі бөлігінде арифметиканы жабатын боламын.