Ръководство за начинаещи за BASH - Сравняване на нещата

01 от 08

Ръководство за начинаещи за BASH - Сравняване на нещата

BASH инстркцията - Сравняване на струните.

В предишната част от урока по BASH разгледахме условните изявления .

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

Горното изображение показва първия пример в ръководството за тази седмица:

#! / хамбар / Баш

name1 = "Gary"
NAME2 = "Боб"

ако ["$ name1" = "$ name2"]
тогава
echo "имената съвпадат"
още
echo "имената не съвпадат"
Fi


В горния сценарий са дефинирали две променливи, наречени name1 и name2 и са им присвоени стойностите "gary" и "bob". Тъй като променливите се съдържат в кавички, те се наричат ​​струнни променливи, които стават по-уместни, докато уроците продължават.

Целият скрипт прави сравнение на стойността на $ name1 и $ name2 и ако те съвпадат с изхода, низът "match names" и ако не извеждат низа "имената не съвпадат".

Цифрите около $ name1 и $ name2 променливите са важни, защото ако стойността на която и да е от тях не е зададена, скриптът ще продължи да работи.

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

Можете също така да използвате означението!! =, За да определите, че не е равно на следното:

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

02 от 08

Ръководство за начинаещи за BASH - Сравняване на струни

BASH инстркцията - Сравняване на струните.

В горния пример тестът сравнява едни и същи две струни и пита въпроса дали Гари предхожда буквата в азбуката?

Ясно е, че отговорът е "не".

Сценарият въвежда по-малко от оператора (<). Тъй като по-малко от оператора се използва и за пренасочване, трябва да го избягате с наклонена черта (\), за да означава по-малко, отколкото затова в горния скрипт сравнявам "$ name1" \ <"$ name2".

Обратното на по-малко от очевидно е по-голямо от това. Вместо да използвате \ <използвайте \>.

Например

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

03 от 08

Ръководство за начинаещи за BASH - Сравняване на струни

BASH инстркцията - Сравняване на струните.

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

ако [-n $ name2]

В скрипта по-горе съм тествал дали $ name2 е получил стойност и ако не е съобщението "Няма bob, никога не е имало bob появява".

04 от 08

Ръководство за начинаещи за BASH - Сравняване на струни

BASH инстркцията - Сравняване на струните.

На предишния слайд ние покрихме дали е зададена променлива или не. Понякога може да е зададена променлива, но всъщност няма да има стойност.

Например:

name1 = ""

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

ако [-z $ име1]

В горния скрипт зададох $ name1 на низ с дължина на низ и след това го сравних с помощта на -z. Ако $ name1 е с нулева дължина, ще се покаже съобщението "gary излезе за вечерта".

05 от 08

Ръководство за начинаещи за BASH - Сравняване на числа

BASH Инструкция - Сравняване на числа.

Досега всички сравнения са били за струни. Какво ще кажете за сравняване на числа?

Горният скрипт показва пример за сравняване на два номера:

#! / хамбар / Баш

а = 4
б = 5

ако [$ a = $ b]
тогава
ехо "4 = 5"
още
ехо "4 не е равно на 5"
Fi

За да зададете променлива като число, просто я задавайте без кавички. След това можете да сравните номерата с знак за равенство.

Предпочитам обаче да използвам следния оператор, за да сравните два числа:

Ако [$ a -eq $ b]

06 от 08

Ръководство за начинаещи за BASH - Сравняване на числа

BASH Инструкция - Сравняване на числа.

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

По-добър начин за сравняване на числата е да използвате следното означение вместо това:

Например:

ако [$ a -lt $ b]

ако [$ a -le $ b]

ако [$ a -ge $ b]

ако [$ a -gt $ b]

07 от 08

Ръководство за начинаещи за BASH - Сравняване на числа

BASH Инструкция - Сравняване на числа.

Накрая за това ръководство, ако искате да проверите дали две числа са различни, можете да използвате или по-малко и по-голямо от операторите заедно (<>) или -ne, както следва:

ако [$ a <> $ b]

ако [$ a -ne $ b]

08 от 08

Ръководство за начинаещи за BASH - Сравнение оператори - Обобщение

Ако сте пропуснали първите три части на това ръководство, можете да ги намерите, като кликнете върху следните връзки:

В следващата част на ръководството ще се занимавам с аритметика.