Каманда тэсту можа быць выкарыстана ў камандным радку Linux параўнаць адзін элемент ад іншага , але часцей выкарыстоўваюцца ў сцэнарах BASH абалонкі ў складзе умоўных аператараў , якія кантралююць логіку і праграму струмень.
базавы прыклад
Вы можаце паспрабаваць гэтыя каманды , проста адкрыўшы акно тэрмінала .
Тэст 1 -eq 2 && рэха "ды" || рэха «не»
Гэтая каманда можа быць разбіта наступным чынам:
- Тэст - гэта азначае, што вы збіраецеся выканаць параўнанне
- 1 - першы элемент, які вы збіраецеся параўнаць
- -eq (як вы параўнання, у гэтым выпадку, вы правяраеце, раўняецца Ці адзін нумар іншы)
- 2 - элемент вы параўноўваеце першы элемент зноў
- && - запусціце наступную інструкцыю, калі вынік верны
- рэха «так» - каманда для запуску, калі параўнанне вяртае ісціну
- || - запусціце наступную інструкцыю, калі вынік з'яўляецца ілжывым
- рэха «не» - каманда для запуску, калі параўнанне вяртае хлусня
Па сутнасці, каманда параўнання 1 да 2, і яны адпавядаюць рэха зацвярджэнне «так» выконваецца, які адлюстроўвае «так», і калі яны не супадаюць рэха «не» зацвярджэнне не выконваецца, які адлюстроўвае «не».
параўнанне лікаў
Калі вы параўноўваеце элементы, якія аналізуюць, як лічбы, якія вы можаце выкарыстоўваць наступныя аператары параўнання:
- -eq - робіць значэнне 1, роўнае значэнне 2
- -ge - гэта значэнне 1 больш або роўна значэнне 2
- -gt - гэта значэнне 1, больш, чым значэнне 2
- -le - гэта значэнне 1 менш або роўна значэнне 2
- -lt - гэта значэнне менш, чым 1 значэнне 2
- -ne - робіць значэнне не роўнае 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)
параўнанне тэксту
Калі вы параўноўваеце элементы, якія аналізуюць ў выглядзе радкоў можна выкарыстоўваць наступныя аператары параўнання:
- = - робіць радок 1 радок 2 матчы
- = - гэта радок 1 адрозніваецца ад радка 2
- -n - гэта даўжыня радка больш 0
- -z - гэта даўжыня радка 0
прыклады:
тэст "string1" = "string2" && рэха "ды" || рэха «не»
(Паказвае «не» на экране, таму што «string1" не роўна «string2»)
тэст "string1"! = "string2" && рэха "ды" || рэха «не»
(Паказвае «так» на экран, таму што «string1" не роўна «string2»)
Тэст -n "string1" && рэха "ды" || рэха «не»
(Паказвае «так» на экране, таму што «string1» мае даўжыню радка больш за нуль)
Test -z "string1" && рэха "ды" || рэха «не»
(Дысплеі «не» на экране, таму што «строка1» мае даўжыню радка больш за нуль)
параўнанне файлаў
Калі вы параўноўваеце файлы, якія вы можаце выкарыстоўваць наступныя аператары параўнання:
- -ef - Ці файлы маюць аднолькавыя нумары прылад і індэксных дэскрыптараў (яны ж файл)
- -nt - Ці з'яўляецца першы файл навей, чым другі файл
- -ot - Ці з'яўляецца першы файл старэй другога файла
- -b - файл існуе і з'яўляецца спецыяльным блокавым
- -c - файл існуе і з'яўляецца спецыяльным Знакавыя
- -d - файл існуе і з'яўляецца каталогам
- -e - файл існуе
- -f - файл існуе і з'яўляецца звычайным файлам
- -g - файл існуе і мае вызначаны лік груп
- -G - Файл існуе і ўладальнік групы карыстальніка
- -h - файл існуе і з'яўляецца сімвалічнай спасылкай
- -k - файл існуе і мае ліпкі набор біт
- -L - Тое ж, што -h
- -О - Файл існуе Вы з'яўляецеся уладальнікам
- -p - файл існуе і з'яўляецца Найменныя каналам
- -r - файл існуе і даступны для чытання
- -s - Файл існуе і мае памер больш за нуль
- -S - файл існуе і з'яўляецца сокетам
- -t - дэскрыптар файла адкрыты на тэрмінале
- -u - файл існуе і ўсталяваны біт-ідэнтыфікатар карыстальніка усталёўваецца
- -w - файл існуе і даступны для запісу
- -x - файл існуе і з'яўляецца выкананым
прыклады:
тэст / шлях / да / 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 не існуе»
рэзюмэ
Тэставая каманда больш карысная ў сцэнарах, таму што вы можаце праверыць значэнне адной зменнай ад іншай і кантраляваць ход выканання праграмы. На стандартнай каманднага радка, вы можаце выкарыстоўваць яго, каб праверыць, ці існуе файл або