Водич за почетници за BASH - споредување на работите

01 од 08

Водич за почетници за BASH - споредување на работите

BASH Упатство - споредување на низи.

Во претходниот дел од базата на BASH ги разгледавме условните изјави .

Тој водич беше многу долг, но навистина само покажа како да го контролира протокот на логиката. Овој водич ги покажува различните начини на кои можете да ги споредувате варијаблите.

Горенаведената слика го покажува првиот пример во водичот оваа недела:

#! / bin / баш

name1 = "Гери"
name2 = "Боб"

ако ["$ name1" = "$ name2"]
тогаш
ехо "имињата се совпаѓаат"
друго
ехо "имињата не се совпаѓаат"
fi


Во погорната скрипта дефинирав две променливи наречени name1 и name2 и им ги доделив вредностите "gary" и "bob". Бидејќи променливите се содржани меѓу наводници, тие се нарекуваат стринг променливи кои стануваат порелевантни додека продолжува упатството.

Сите скрипта не ја споредуваат вредноста на $ name1 и $ name2 и ако се совпаѓаат со излезот на стрингот "имињата се совпаѓаат" и ако не излезат со низа "имињата не се совпаѓаат".

Цитатите околу променливите $ name1 и $ name2 се важни, бидејќи ако вредноста на било кој од нив не е поставена тогаш сценариото ќе продолжи да работи.

На пример, ако $ name1 никогаш не е поставено тогаш ќе се споредувате со "bob". Без наводниците ќе останете со "боб", што очигледно не успее.

Можете исто така да го користите! = Нотација за да дефинирате не еднаква на следното:

ако ["$ name1"! = "$ name2"]

02 од 08

Водич за почетници за BASH - споредување на низи

BASH Упатство - споредување на низи.

Во горниот пример, тестот ги споредува истите две жици и го поставува прашањето дали Гери доаѓа пред боб по азбуката?

Јасно е дека одговорот е не.

Скриптата го воведува помалку од операторот (<). Бидејќи помалку од операторот исто така се користи за пренасочување, мора да го избегнете со коса црта (\) за да значи помалку отколку што е причината зошто во сценариото погоре го споредив "$ name1" \ <"$ name2".

Спротивно на помалку од очигледно е поголемо од. Наместо да се користи \ <употреба \>.

На пример

ако ["$ name1" \> "$ name2"]

03 од 08

Водич за почетници за BASH - споредување на низи

BASH Упатство - споредување на низи.

Ако сакате да проверите дали променливата има вредност, можете да го користите следниов тест:

ако [-n $ name2]

Во горенаведената скрипта проверив дали $ name2 му е дадена вредност и ако не се појавува пораката "Не постои боб, никогаш не се појавува боб".

04 од 08

Водич за почетници за BASH - споредување на низи

BASH Упатство - споредување на низи.

На минатото слајд ние покриваме дали променливата е поставена или не. Понекогаш, иако променливата може да биде поставена, но можеби нема да има вредност.

На пример:

name1 = ""

За да проверите дали променливата има вредност или не (т.е. има должина од нула) користете -за како што следува:

ако [-z $ name1]

Во горенаведениот скрипт, го поставив $ name1 до низа должини, а потоа го споредував користејќи -z. Ако $ name1 е нула во должина, ќе се прикаже пораката "Gary излезе за вечер".

05 од 08

Водич за почетници за BASH - споредба на броеви

BASH Почетен курс - споредба на броеви.

Досега сите споредби биле за жиците. Што е со споредувањето на броевите?

Горенаведениот скрипт покажува пример за споредување на два броја:

#! / bin / баш

a = 4
b = 5

ако [$ a = $ b]
тогаш
ехо "4 = 5"
друго
ехо "4 не е еднакво на 5"
fi

За да поставите променлива да биде број, едноставно поставете ја без наводници. Потоа можете да ги споредите броевите со знак за еднаквост.

Повеќе сакам да го користам следниов оператор за да ги споредите двата броја:

Ако [$ a -eq $ b]

06 од 08

Водич за почетници за BASH - споредба на броеви

BASH Почетен курс - споредба на броеви.

Ако сакате да споредите дали бројот е помал од друг број можете да го користите помалку од операторот (<). Како и со стрингови, мора да избегате од операторот помалку со коса црта. (\ <).

Подобар начин за споредување на броевите е да ја користите следната нотација:

На пример:

ако [$ a -lt $ b]

ако [$ a -le $ b]

ако [$ a -ge $ b]

ако [$ а -gt $ b]

07 од 08

Водич за почетници за BASH - споредба на броеви

BASH Почетен курс - споредба на броеви.

Конечно, за ова упатство, ако сакате да проверите дали два броја се различни, можете да ги користите или помалите и поголеми од операторите заедно (<>) или -не како што следува:

ако [$ a <> $ b]

ако [$ a -ne $ b]

08 од 08

Водич за почетници за BASH - Оператори за споредба - резиме

Ако сте ги пропуштиле првите три дела од ова упатство, можете да ги најдете со кликнување на следните линкови:

Во следниот дел од водичот ќе ја покривам аритметиката.