Testovací príkaz sa môže použiť na príkazovom riadku systému Linux na porovnanie jedného elementu s iným, ale je bežnejšie používaný v skriptoch shell BASH ako súčasť podmienených vyhlásení, ktoré riadia logiku a programový tok.
Základný príklad
Tieto príkazy môžete vyskúšať jednoducho otvorením terminálového okna.
test 1 -eq 2 && echo "yes" || echo "nie"
Vyššie uvedený príkaz možno rozdeliť takto: Príkaz v podstate porovnáva 1 až 2 a ak sa zhodujú, vykoná sa príkaz "yes", ktorý zobrazí "yes" a ak sa nezhoduje, vykoná sa príkaz "no", ktorý zobrazí "no". Ak porovnávate prvky, ktoré sa analyzujú ako čísla, môžete použiť nasledujúce porovnávacie operátory: Príklady test 1 -eq 2 && echo "yes" || echo "nie"
(zobrazuje "nie" na obrazovke, pretože 1 nie je 2) test 1 -g 2 & & echo "yes" || echo "nie"
(zobrazí "nie" na obrazovke, pretože 1 nie je väčšie alebo rovná 2) test 1 -gt 2 && echo "yes" || echo "nie"
(zobrazí "nie" na obrazovke, pretože 1 nie je väčšie ako 2) test 1-o 2 && echo "áno" || echo "nie"
(zobrazuje obrazovku "áno", pretože 1 je menšie alebo rovné 2) test 1 -lt 2 && echo "yes" || echo "nie"
(zobrazuje obrazovku "áno", pretože 1 je menšie alebo rovné 2) test 1 -ne 2 && echo "áno" || echo "nie"
(zobrazí "áno" na obrazovke, pretože 1 nie je rovno 2) Ak porovnávate prvky, ktoré sa analyzujú ako reťazce, môžete použiť nasledujúce porovnávacie operátory: Príklady test "reťazec1" = "reťazec2" && echo "áno" || echo "nie"
(zobrazí sa "nie" na obrazovke, pretože "string1" sa nerovná "string2") test "reťazec1"! = "reťazec2" && echo "áno" || echo "nie"
(zobrazí "áno" na obrazovke, pretože "string1" sa nerovná "string2") test -n "string1" && echo "áno" || echo "nie"
(zobrazí "áno" na obrazovke, pretože "string1" má dĺžku reťazca väčšiu ako nula) test -z "string1" && echo "áno" || echo "nie"
(zobrazí "nie" na obrazovke, pretože "string1" má dĺžku reťazca väčšiu ako nula) Ak porovnávate súbory, môžete použiť nasledujúce porovnávacie operátory: Príklady test / cesta / do / súbor1 -nt / cesta / do / súbor2 && echo "áno"
(Ak je súbor 1 novší ako súbor2, zobrazí sa slovo "yes") test -e / path / to / file1 & & echo "áno"
(ak existuje súbor1, zobrazí sa slovo "áno") test -O / cesta / do / súbor1 & & echo "áno"
(ak vlastníte súbor 1, zobrazí sa slovo "áno") terminológie Zatiaľ všetko porovnáva jednu vec proti druhej, ale čo, ak chcete porovnať dve podmienky? Napríklad, ak má zviera 4 nohy a ide "moo", je to pravdepodobne krava. Jednoduchá kontrola na 4 nohy nezaručuje, že máte kravu, ale kontroluje zvuk, ktorý určite robí. Na overenie obidvoch podmienok naraz použite nasledovné vyhlásenie: test 4 -eq 4 -a "moo" = "moo" && echo "to je krava" || echo "to nie je krava"
Kľúčovou časťou je tu -a, ktorá znamená a . Existuje lepší a bežnejší spôsob vykonávania rovnakého testu a to je nasledovné: test 4 -eq 4 && test "moo" = "moo" && echo "to je krava" || echo "to nie je krava"
Ďalší test, ktorý by ste mohli chcieť urobiť, je porovnanie dvoch vyhlásení a ak je pravdivý, zadajte reťazec. Napríklad, ak chcete skontrolovať, či existuje súbor s názvom "file1.txt" alebo súbor s názvom "file1.doc", môžete použiť nasledujúci príkaz: test -e file1.txt -o -e file1.doc && echo "súbor1 existuje" || echo "file1 neexistuje"
Kľúčovou časťou je "-o", čo znamená alebo . Existuje lepší a bežnejší spôsob vykonávania rovnakého testu a to je nasledovné: test -e file1.txt || test -e file1.doc && echo "súbor1 existuje" || echo "file1 neexistuje" V skutočnosti nepotrebujete použiť test slov na porovnanie. Jediné, čo musíte urobiť, je priložiť vyhlásenie do hranatých zátvoriek nasledovne: -e súbor1.txt && echo "súbor1 existuje" || echo "file1 neexistuje"
A v podstate znamená to isté ako test. Teraz viete, že môžete vylepšiť porovnanie viacerých podmienok takto: 4 -eq 4 && "moo" = "moo" & & echo "to je krava" || echo "to nie je krava"-e file1.txt || -e súbor1.doc && echo "súbor1 existuje" || echo "file1 neexistuje" Skúšobný príkaz je užitočnejší v skriptoch, pretože môžete otestovať hodnotu jednej premennej voči inej premennej a riadiť tok programu. Na štandardnom príkazovom riadku môžete použiť na overenie, či súbor existuje alebo nie.
Porovnanie čísel
Porovnanie textu
Porovnávanie súborov
Porovnanie viacerých podmienok
Odstránenie kľúčového slova testu
zhrnutie