01 з 08
Кіраўніцтва для пачаткоўцаў BASH - Параўнанне рэчаў
У папярэдняй частцы ўрока BASH мы глядзелі на умоўных аператарах .
Гэта кіраўніцтва было вельмі доўга, але на самой справе паказаў, як кіраваць патокам логікі. У дадзеным кіраўніцтве паказаны розныя спосабы, у якіх вы можаце параўнаць зменныя.
На малюнку вышэй паказаны першы прыклад у кіраўніцтве на гэтым тыдні:
#! / Bin / Баш
name1 = "Гэры"
name2 = "боб"калі [ "$ name1" = "$ name2"]
то
рэха «імёны супадаюць»
яшчэ
рэха «імёны не супадаюць»
фі
У прыведзеных вышэй сцэнарах я вызначыў дзве зменныя, званыя name1 і name2 і прызначыў ім значэнне «Гэры» і «боб». Паколькі зменныя ўтрымліваюцца ў двукоссях яны называюцца радковымі зменнымі, якія становяцца ўсё больш актуальным, паколькі падручнік працягваецца.
Усе скрыпт робіць гэта параўнаць значэнне $ name1 і $ name2 і калі яны супадаюць выснову запісы з "супадзенне імёнаў», і калі яны не выводзяць радок «імёны не адпавядаюць».
Двукоссі вакол $ имя1 і $ NAME2 зменных маюць вялікае значэнне, так як, калі значэнне якога-небудзь з іх не было ўстаноўлена, то сцэнар будзе працягваць працаваць.
Напрыклад, калі $ name1 ніколі не быў устаноўлены, то вы б параўнанне «» з «боб». Без двукоссяў вы засталіся б з = «боб», які відавочна не атрымліваецца.
Вы таксама можаце выкарыстоўваць = абазначэння для вызначэння не роўныя наступным:
калі [ "$ name1"! = "$ name2"]
02 з 08
Кіраўніцтва для пачаткоўцаў BASH - Параўнанне радкоў
У прыведзеным вышэй прыкладзе тэст параўноўвае адны і тыя ж два радкі і задае пытанне: ці сапраўды Гэры ідзе перад боб у алфавіце?
Відавочна, што няма адказу няма.
Скрыпт ўводзіць менш, чым аператар (<). Паколькі менш, чым аператар таксама выкарыстоўваецца для перанакіравання ў вас ёсць, каб пазбегнуць яго з касой рысы (\) для таго, каб азначаць менш, чым менавіта таму ў сцэнары вышэй я параўнаў «$ name1» \ < "$ name2».
Супрацьлегласць менш, відавочна, больш. Замест таго, каб выкарыстоўваць \ <выкарыстоўваць \>.
Напрыклад
калі [ "$ name1" \> "$ name2"]
03 з 08
Кіраўніцтва для пачаткоўцаў BASH - Параўнанне радкоў
Калі вы хочаце, каб праверыць, ці мае пераменнае значэнне, якое вы можаце выкарыстоўваць наступны тэст:
калі [-n $ name2]
У сцэнары вышэй я праверыў, ці быў $ name2 было прысвоена значэнне, і калі гэта не паведамленне «Там няма боб, ніколі не было боб выглядае».
04 з 08
Кіраўніцтва для пачаткоўцаў BASH - Параўнанне радкоў
На мінулым слайдзе мы разгледзелі Ці зменная была ўсталяваная ці не. Часам, хоць пераменная можа быць ўстаноўлена, але яна не можа на самай справе маюць значэнне.
Напрыклад:
name1 = ""
Для таго, каб праверыць, ці мае пераменная значэнне або няма (г.зн. мае нулявую даўжыню) выкарыстоўваць -z наступным чынам:
калі [-z $ name1]
У прыведзеным вышэй сцэнары я паставіў $ name1 ў радок нулявы даўжыні, а затым параўналі яго з дапамогай -z. Калі $ name1 роўныя нуль ў даўжыні паведамленне «Гэры выйшаў на вечар» будзе адлюстроўвацца.
05 з 08
Кіраўніцтва для пачаткоўцаў BASH - Параўнанне нумароў
Да гэтага часу ўсе параўнання былі для радкоў. Як наконт параўнання лікаў?
Вышэй сцэнар паказаны прыклад параўнання двух лікаў:
#! / Bin / Баш
а = 4
б = 5калі [$ а = $ Ь]
то
рэха "4 = 5"
яшчэ
рэха «4 не роўна 5»
фі
Для таго, каб усталяваць зменную быць побач проста ўсталяваць яго без двукоссяў. Вы можаце параўнаць нумары з знакам роўнасці.
Я аддаю перавагу, аднак, выкарыстоўваць аператар для параўнання двух лікаў:
Калі [$ у -eq $ Ь]
06 з 08
Кіраўніцтва для пачаткоўцаў BASH - Параўнанне нумароў
Калі вы хочаце параўнаць Ці менш, чым іншы нумар лік, якое вы можаце выкарыстоўваць менш, чым аператар (<). Як са радкамі вам давядзецца ўцякаць менш, чым аператар з касой рысай. (\ <).
Лепшы спосаб параўнання лікаў з'яўляецца выкарыстоўваць наступныя абазначэння замест:
- менш -lt
- Менш або роўна -Le
- больш -gt
- Больш або роўна -GE
Напрыклад:
калі [$ а -lt $ Ь]
калі [$ а -le $ Ь]
калі [$ а -ge $ Ь]
калі [$ а -gt $ Ь]
07 08
Кіраўніцтва для пачаткоўцаў BASH - Параўнанне нумароў
Нарэшце, для гэтага кіраўніцтва, калі вы хочаце праверыць, ці адрозніваюцца вы можаце выкарыстоўваць два нумары альбо менш і больш аператараў разам (<>) або -ne наступным чынам:
калі [$ а <> $ Ь]
калі [$ а -ne $ Ь]
08 з 08
Кіраўніцтва для пачаткоўцаў BASH - Аператары параўнання - Рэзюмэ
Калі вы прапусцілі першыя тры часткі гэтага кіраўніцтва вы можаце знайсці іх, перайшоўшы па наступных спасылках:
У наступнай частцы кіраўніцтва я буду пакрываць арыфметыку.