Test

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 24. března 2017; kontroly vyžadují 19 úprav .

test  je unixový nástroj pro kontrolu typů souborů a porovnávání hodnot. Vrátí návratový kód 0 (pravda) nebo 1 (nepravda) v závislosti na vyhodnocení výrazu expr. Výrazy mohou být unární nebo binární. Unární výrazy se často používají ke kontrole stavu souboru. Můžete také porovnávat čísla a řetězce.

Počínaje UNIX System III se nástroj stal vestavěným a jeho druhá forma, [. [jeden]

Použití

Obvykle se používá v jednoduchých shellových skriptech pro různé druhy kontrol. Následující příklad odstraní běžný soubor test.txt, pokud existuje, nebo zobrazí zprávu, že soubor neexistuje.

#!/bin/sh if test -f test.txt then rm test.txt else echo 'soubor test.txt nenalezen' fi

Pro zkrácení kódu skriptu použijte párový operátor '[' jako synonymum pro test. Operátor páru vyžaduje mezeru mezi závorkami, protože [ (závorka) je příkaz shellu a shelly kompatibilní s POSIXem vyžadují mezeru mezi příkazem a jeho argumenty.

#!/bin/sh if [ -f test.txt ] then rm test.txt else echo 'soubor test.txt nenalezen' fi

Možnosti spuštění

  • -b file true, pokud soubor existuje a jedná se o speciální blokové zařízení.
  • -c file true, pokud soubor existuje a je znakovým zařízením.
  • -d file true, pokud soubor existuje a je adresářem.
  • -e file je pravda, pokud soubor existuje.
  • -f file true , pokud soubor existuje a je to běžný soubor.
  • -g file true, pokud soubor existuje a má nastavené ID skupiny (set-group-id).
  • -k file true, pokud má soubor nastavený lepivý bit.
  • -L file true, pokud soubor existuje a jedná se o symbolický odkaz.
  • -p file true, pokud soubor existuje a je pojmenovaným kanálem (rourou).
  • -r file true, pokud soubor existuje a je čitelný.
  • -s file true, pokud soubor existuje a má velikost větší než nula.
  • -S file true, pokud soubor existuje a je to soket.
  • -t [fd] true, pokud je na terminálu otevřeno fd. Pokud je fd vynecháno, výchozí je 1 (stdout).
  • -u file true, pokud soubor existuje a má nastavený bit uživatele (set-user-id).
  • -w file true, pokud soubor existuje a je možné do něj zapisovat.
  • -x file true, pokud soubor existuje a je spustitelný.
  • -O file true, pokud soubor existuje a jeho vlastník má efektivní ID uživatele.
  • -G file true, pokud soubor existuje a jeho vlastník má efektivní ID skupiny.
  • file1 -nt file2 true, pokud je soubor1 novější (datum změny) než soubor2.
  • file1 -ot file2 true, pokud je soubor1 starší než soubor2.
  • file1 -ef file2 true, pokud soubor1 a soubor2 mají stejné zařízení a číslo inodu.
  • -z string— true, pokud je délka řetězce nula.
  • -n string je pravda, pokud je délka řetězce nenulová.
  • string1 = string2 true, pokud jsou řetězce stejné.
  • string1 != string2 true, pokud se řetězce nerovnají.
  • ! expr je pravdivé, pokud je expr nepravdivé.
  • expr1 -a expr2 je pravdivé, pokud jsou pravdivé oba výrazy1 i výraz2.
  • expr1 -o expr2 má hodnotu true, pokud je alespoň jeden z výrazů výraz1 nebo výraz2 pravdivý.
  • arg1 %оператор% arg2 -eq, -ne, -lt, -le, -gt, или -ge - tyto binární aritmetické operace vrátí hodnotu true, pokud je arg1 rovno (-eq), nerovná se (-ne), menší než (-lt), menší nebo rovno (-le), větší než (-gt) nebo větší nebo rovno (-ge) než arg2, v daném pořadí. arg1 a arg2 mohou být kladná celá čísla, záporná celá čísla nebo speciální řetězcové výrazy -l, které počítají délku řetězce.

Poznámky

  1. tradiční rodina Bourne shell / historie a vývoj . www.in-ulm.de. Získáno 15. července 2017. Archivováno z originálu 14. dubna 2020.

Odkazy