Як выкарыстоўваць тэставыя ўмовы ў межах Bash Script

Каманда тэсту можа быць выкарыстана ў камандным радку Linux параўнаць адзін элемент ад іншага , але часцей выкарыстоўваюцца ў сцэнарах BASH абалонкі ў складзе умоўных аператараў , якія кантралююць логіку і праграму струмень.

базавы прыклад

Вы можаце паспрабаваць гэтыя каманды , проста адкрыўшы акно тэрмінала .

Тэст 1 -eq 2 && рэха "ды" || рэха «не»

Гэтая каманда можа быць разбіта наступным чынам:

Па сутнасці, каманда параўнання 1 да 2, і яны адпавядаюць рэха зацвярджэнне «так» выконваецца, які адлюстроўвае «так», і калі яны не супадаюць рэха «не» зацвярджэнне не выконваецца, які адлюстроўвае «не».

параўнанне лікаў

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

прыклады:

Тэст 1 -eq 2 && рэха "ды" || рэха «не»

(Адлюстроўвае «Не» на экране, так як 1 ня роўнае 2)

Тэст 1 -ge 2 && рэха "ды" || рэха «не»

(Дысплеі «не» на экране, паколькі 1 не больш або роўна 2)

Тэст 1 -gt 2 && рэха "ды" || рэха «не»

(Адлюстроўвае «Не» на экране, паколькі 1 не болей, чым 2)

Тэст 1 -le 2 && рэха "ды" || рэха «не»

(Дысплеі «так» на экране, паколькі 1 менш або роўна 2)

Тэст 1 -lt 2 && рэха "ды" || рэха «не»

(Дысплеі «так» на экране, паколькі 1 менш або роўна 2)

Тэст 1 -ne 2 && рэха "ды" || рэха «не»

(Паказвае «так» на экран, таму што 1 ня роўнае 2)

параўнанне тэксту

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

прыклады:

тэст "string1" = "string2" && рэха "ды" || рэха «не»

(Паказвае «не» на экране, таму што «string1" не роўна «string2»)

тэст "string1"! = "string2" && рэха "ды" || рэха «не»

(Паказвае «так» на экран, таму што «string1" не роўна «string2»)

Тэст -n "string1" && рэха "ды" || рэха «не»

(Паказвае «так» на экране, таму што «string1» мае даўжыню радка больш за нуль)

Test -z "string1" && рэха "ды" || рэха «не»

(Дысплеі «не» на экране, таму што «строка1» мае даўжыню радка больш за нуль)

параўнанне файлаў

Калі вы параўноўваеце файлы, якія вы можаце выкарыстоўваць наступныя аператары параўнання:

прыклады:

тэст / шлях / да / file1 -п / шлях / да / file2 && рэха "так"

(Калі file1 навей, чым file2 тое слова «так» будзе адлюстроўвацца)

тэст -e / шлях / да / file1 && рэха "так"

(Калі file1 існуе слова «так» будзе адлюстроўвацца)

тэст -О / шлях / да / file1 && рэха «так»

(Калі ў вас ёсць file1 тады слова «так» адлюстроўваецца ")

тэрміналогія

Параўнанне некалькіх умоў

Да гэтага часу ўсё было параўноўваць адно з іншым, але што, калі вы хочаце параўнаць два ўмовы.

Напрыклад, калі жывёла мае 4 ногі і ідзе «мыканне» гэта, верагодна, карова. Проста праверка на 4 ногі не гарантуе, што ў вас ёсць карова, але праверка гуку гэта робіць, безумоўна, робіць.

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

Тэст 4 -eq 4 -a «му» = «му» && рэха «гэта карова» || рэха «гэта не карова»

Ключавая частка тут з'яўляецца -a, які пазначае і.

Існуе лепш і больш шырока выкарыстоўваецца спосаб выканання такога ж тэсту, і выглядае наступным чынам:

Тэст 4 -eq 4 && тэст «му» = «му» && рэха «гэта карова» || рэха «гэта не карова»

Яшчэ адзін тэст, які вы можаце зрабіць гэта, параўноўваючы дзве заявы, і калі небудзь дакладна выводзіць радок. Напрыклад, калі вы хочаце праверыць, што файл з імем «file1.txt» існуе, або існуе файл з імем «file1.doc» вы можаце выкарыстоўваць наступную каманду

праверыць -e file1.txt -o -e file1.doc && рэха "file1 існуе" || рэха «file1 не існуе»

Ключавая частка тут з'яўляецца -о, якая стаіць за або.

Існуе лепш і больш шырока выкарыстоўваецца спосаб выканання такога ж тэсту, і выглядае наступным чынам:

тэст -e file1.txt || тэст -e file1.doc && рэха "file1 існуе" || рэха «file1 не існуе»

Ліквідацыю Тэсту словы

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

[-e file1.txt] && рэха "file1 існуе" || рэха «file1 не існуе»

[І] ў асноўным азначае тое ж самае, як тэст.

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

[4 -eq 4] && [ "му" = "му"] && рэха "гэта карова" || рэха «гэта не карова»

[-e file1.txt] || [-e file1.doc] && рэха "file1 існуе" || рэха «file1 не існуе»

рэзюмэ

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