Testovací příkaz lze použít na příkazovém řádku systému Linux, který porovnává jeden prvek s jiným, ale je běžněji používán v shell skriptů BASH jako součást podmíněných příkazů, které řídí logiku a programový tok.
Základní příklad
Tyto příkazy můžete vyzkoušet jednoduše otevřením terminálového okna.
test 1 -eq 2 && echo "yes" || echo "no"
Výše uvedený příkaz může být rozdělen takto: V podstatě je příkaz porovnán s hodnotou 1 až 2 a pokud se shodují, provede se příkazy "ano", které zobrazí "ano" a pokud neodpovídají, provede příkaz "ne", který zobrazí "ne". Pokud porovnáváte prvky, které se vyskytují jako čísla, můžete použít následující operátory porovnávání: Příklady test 1 -eq 2 && echo "yes" || echo "no"
(zobrazí se "ne" na obrazovce, protože 1 se nerovná 2) test 1 -kód 2 && echo "ano" || echo "no"
(zobrazí "ne" na obrazovce, protože 1 není větší nebo rovno 2) test 1 -gt 2 && echo "ano" || echo "no"
(zobrazí "ne" na obrazovce, protože 1 není větší než 2) test 1 -le2 && echo "ano" || echo "no"
(zobrazí "ano" na obrazovce, protože 1 je menší nebo rovno 2) test 1 -lt 2 && echo "ano" || echo "no"
(zobrazí "ano" na obrazovce, protože 1 je menší nebo rovno 2) test 1 -ne 2 && echo "ano" || echo "no"
(zobrazí "ano" na obrazovce, protože 1 není rovno 2) Pokud porovnáváte prvky analyzované jako řetězce, můžete použít následující porovnávací operátory: Příklady test "string1" = "string2" && echo "ano" || echo "no"
(zobrazí "ne" na obrazovce, protože "string1" se nerovná "string2") test "string1"! = "string2" && echo "ano" || echo "no"
(zobrazí "ano" na obrazovce, protože "string1" se nerovná "string2") test -n "string1" && echo "ano" || echo "no"
(zobrazí "ano" na obrazovce, protože "string1" má délku řetězce větší než nula) test -z "string1" && echo "ano" || echo "no"
(zobrazí "ne" na obrazovce, protože "string1" má délku řetězce větší než nula) Pokud porovnáváte soubory, můžete použít následující operátory porovnání: Příklady test / cesta / do / souboru1 -nt / cesta / do / souboru2 && echo "ano"
(Pokud je soubor1 novější než soubor2, zobrazí se slovo "ano") test -e / path / to / file1 && echo "ano"
(pokud existuje soubor1, zobrazí se slovo "ano") test -O / cesta / do / souboru1 & & echo "ano"
(pokud vlastníte soubor1, zobrazí se slovo "ano") Terminologie Zatím vše srovnává jednu věc proti druhé, ale co když chcete porovnat dvě podmínky? Například pokud zvíře má 4 nohy a jde "moo", je to pravděpodobně kráva. Jednoduchá kontrola na 4 nohy nezaručuje, že máte krávu, ale kontrolujete zvuk, který určitě dělá. Chcete-li otestovat obě podmínky najednou, použijte následující příkaz: test 4 -eq 4 -a "moo" = "moo" && echo "to je kráva" || echo "to není kráva"
Klíčovou částí je zde -a, která znamená a . Existuje lepší a běžnější způsob, jak provádět tentýž test, a to je následující: test 4 -eq 4 && test "moo" = "moo" && echo "to je kráva" || echo "to není kráva"
Dalším testem, který byste chtěli udělat, je porovnání dvou příkazů a pokud je buď pravda, vygenerujte řetězec. Například pokud chcete zkontrolovat, zda existuje soubor s názvem "file1.txt" nebo soubor s názvem "file1.doc", můžete použít následující příkaz: test -e file1.txt -o -e file1.doc && echo "soubor1 existuje" || echo "soubor1 neexistuje"
Klíčovou částí je zde -o, které znamená nebo . Existuje lepší a běžnější způsob, jak provádět tentýž test, a to je následující: test -e soubor1.txt || test -e file1.doc && echo "soubor1 existuje" || echo "soubor1 neexistuje" Nemusíte skutečně použít slovo test pro provedení porovnání. Jediné, co musíte udělat, je přiložit příkaz v hranatých závorkách takto: -e soubor1.txt && echo "soubor1 existuje" || echo "soubor1 neexistuje"
A v podstatě znamená to samé jako test. Nyní víte, že můžete vylepšit porovnání několika podmínek takto: 4 -eq 4 && "moo" = "moo" && echo "to je kráva" || echo "to není kráva"-e file1.txt || -e file1.doc && echo "soubor1 existuje" || echo "soubor1 neexistuje" Testovací příkaz je užitečnější ve skriptech, protože můžete otestovat hodnotu jedné proměnné vůči jiné a řídit tok programu. Na standardním příkazovém řádku jej můžete použít k otestování, zda soubor existuje nebo ne.
Srovnání čísel
Srovnání textu
Srovnání souborů
Porovnání více podmínek
Odstranění klíčového slova testu
souhrn