Кіраўніцтва для пачаткоўцаў BASH - Параўнанне рэчаў

01 з 08

Кіраўніцтва для пачаткоўцаў BASH - Параўнанне рэчаў

BASH Падручнік - Параўнанне радкоў.

У папярэдняй частцы ўрока BASH мы глядзелі на умоўных аператарах .

Гэта кіраўніцтва было вельмі доўга, але на самой справе паказаў, як кіраваць патокам логікі. У дадзеным кіраўніцтве паказаны розныя спосабы, у якіх вы можаце параўнаць зменныя.

На малюнку вышэй паказаны першы прыклад у кіраўніцтве на гэтым тыдні:

#! / Bin / Баш

name1 = "Гэры"
name2 = "боб"

калі [ "$ name1" = "$ name2"]
то
рэха «імёны супадаюць»
яшчэ
рэха «імёны не супадаюць»
фі


У прыведзеных вышэй сцэнарах я вызначыў дзве зменныя, званыя name1 і name2 і прызначыў ім значэнне «Гэры» і «боб». Паколькі зменныя ўтрымліваюцца ў двукоссях яны называюцца радковымі зменнымі, якія становяцца ўсё больш актуальным, паколькі падручнік працягваецца.

Усе скрыпт робіць гэта параўнаць значэнне $ name1 і $ name2 і калі яны супадаюць выснову запісы з "супадзенне імёнаў», і калі яны не выводзяць радок «імёны не адпавядаюць».

Двукоссі вакол $ имя1 і $ NAME2 зменных маюць вялікае значэнне, так як, калі значэнне якога-небудзь з іх не было ўстаноўлена, то сцэнар будзе працягваць працаваць.

Напрыклад, калі $ name1 ніколі не быў устаноўлены, то вы б параўнанне «» з «боб». Без двукоссяў вы засталіся б з = «боб», які відавочна не атрымліваецца.

Вы таксама можаце выкарыстоўваць = абазначэння для вызначэння не роўныя наступным:

калі [ "$ name1"! = "$ name2"]

02 з 08

Кіраўніцтва для пачаткоўцаў BASH - Параўнанне радкоў

BASH Падручнік - Параўнанне радкоў.

У прыведзеным вышэй прыкладзе тэст параўноўвае адны і тыя ж два радкі і задае пытанне: ці сапраўды Гэры ідзе перад боб у алфавіце?

Відавочна, што няма адказу няма.

Скрыпт ўводзіць менш, чым аператар (<). Паколькі менш, чым аператар таксама выкарыстоўваецца для перанакіравання ў вас ёсць, каб пазбегнуць яго з касой рысы (\) для таго, каб азначаць менш, чым менавіта таму ў сцэнары вышэй я параўнаў «$ name1» \ < "$ name2».

Супрацьлегласць менш, відавочна, больш. Замест таго, каб выкарыстоўваць \ <выкарыстоўваць \>.

Напрыклад

калі [ "$ name1" \> "$ name2"]

03 з 08

Кіраўніцтва для пачаткоўцаў BASH - Параўнанне радкоў

BASH Падручнік - Параўнанне радкоў.

Калі вы хочаце, каб праверыць, ці мае пераменнае значэнне, якое вы можаце выкарыстоўваць наступны тэст:

калі [-n $ name2]

У сцэнары вышэй я праверыў, ці быў $ name2 было прысвоена значэнне, і калі гэта не паведамленне «Там няма боб, ніколі не было боб выглядае».

04 з 08

Кіраўніцтва для пачаткоўцаў BASH - Параўнанне радкоў

BASH Падручнік - Параўнанне радкоў.

На мінулым слайдзе мы разгледзелі Ці зменная была ўсталяваная ці не. Часам, хоць пераменная можа быць ўстаноўлена, але яна не можа на самай справе маюць значэнне.

Напрыклад:

name1 = ""

Для таго, каб праверыць, ці мае пераменная значэнне або няма (г.зн. мае нулявую даўжыню) выкарыстоўваць -z наступным чынам:

калі [-z $ name1]

У прыведзеным вышэй сцэнары я паставіў $ name1 ў радок нулявы даўжыні, а затым параўналі яго з дапамогай -z. Калі $ name1 роўныя нуль ў даўжыні паведамленне «Гэры выйшаў на вечар» будзе адлюстроўвацца.

05 з 08

Кіраўніцтва для пачаткоўцаў BASH - Параўнанне нумароў

BASH Падручнік - параўнання лікаў.

Да гэтага часу ўсе параўнання былі для радкоў. Як наконт параўнання лікаў?

Вышэй сцэнар паказаны прыклад параўнання двух лікаў:

#! / Bin / Баш

а = 4
б = 5

калі [$ а = $ Ь]
то
рэха "4 = 5"
яшчэ
рэха «4 не роўна 5»
фі

Для таго, каб усталяваць зменную быць побач проста ўсталяваць яго без двукоссяў. Вы можаце параўнаць нумары з знакам роўнасці.

Я аддаю перавагу, аднак, выкарыстоўваць аператар для параўнання двух лікаў:

Калі [$ у -eq $ Ь]

06 з 08

Кіраўніцтва для пачаткоўцаў BASH - Параўнанне нумароў

BASH Падручнік - параўнання лікаў.

Калі вы хочаце параўнаць Ці менш, чым іншы нумар лік, якое вы можаце выкарыстоўваць менш, чым аператар (<). Як са радкамі вам давядзецца ўцякаць менш, чым аператар з касой рысай. (\ <).

Лепшы спосаб параўнання лікаў з'яўляецца выкарыстоўваць наступныя абазначэння замест:

Напрыклад:

калі [$ а -lt $ Ь]

калі [$ а -le $ Ь]

калі [$ а -ge $ Ь]

калі [$ а -gt $ Ь]

07 08

Кіраўніцтва для пачаткоўцаў BASH - Параўнанне нумароў

BASH Падручнік - параўнання лікаў.

Нарэшце, для гэтага кіраўніцтва, калі вы хочаце праверыць, ці адрозніваюцца вы можаце выкарыстоўваць два нумары альбо менш і больш аператараў разам (<>) або -ne наступным чынам:

калі [$ а <> $ Ь]

калі [$ а -ne $ Ь]

08 з 08

Кіраўніцтва для пачаткоўцаў BASH - Аператары параўнання - Рэзюмэ

Калі вы прапусцілі першыя тры часткі гэтага кіраўніцтва вы можаце знайсці іх, перайшоўшы па наступных спасылках:

У наступнай частцы кіраўніцтва я буду пакрываць арыфметыку.