test (Unix)

test – uniksowe narzędzie konsolowe służące do obliczania wyniku wyrażeń warunkowych.

Użycie

test wyrażenie

lub

[ wyrażenie ]

Funkcje

Funkcje plikowe

Funkcje te zwracają wartość prawda jeżeli plik istnieje i spełnia warunek.

  • -b plik – plik jest blokowym plikiem specjalnym. (ang. block special file).
  • -c plik – plik jest znakowym plikiem specjalnym (ang. character special file).
  • -d plik – plik jest katalogiem (ang. directory).
  • -e plik – plik istnieje (ang. exists).
  • -f plik – plik jest normalnym plikiem (ang. regular file).
  • -g plik – plik ma ustawiony GID.
  • -h plik – plik jest dowiązaniem symbolicznym.
  • -k plik – plik ma ustawiony sticky bit.
  • -L plik – plik jest dowiązaniem symbolicznym.
  • -p plik – plik jest potokiem nazwanym (ang. pipe).
  • -r plik – plik można odczytać ang. readable).
  • -s plik – plik ma rozmiar większy niż 0 (ang. size).
  • -u plik – plik ma ustawiony UID.
  • -w plik – plik ma włączoną flagę zapisu (ang. write) dla użytkownika, który wywołał polecenie.
  • -x plik – plik ma włączoną flagę wykonania (ang. execute) dla użytkownika, który wywołał polecenie.
  • -t deskryptor – deskryptor jest otwarty i powiązany z terminalem.
  • plik1 -nt plik2 – plik1 jest nowszy od pliku plik2 (ang. newer than).
  • plik1 -ot plik2 – plik1 jest starszy od pliku plik2 (ang. older than).
  • plik1 -ef plik2 – plik1 jest inną nazwą dla pliku plik2 (dowiązanie symboliczne).

Funkcje tekstowe

  • -n tekst – długość tekstu jest większa niż 0 (ang. nonzero).
  • -z tekst – długość tekstu wynosi 0 (ang. zero).
  • tekst1 = tekst2 – teksty: tekst1 i tekst2 są identyczne.
  • tekst1 != tekst2 – teksty: tekst1 i tekst2 są różne.

Funkcje liczbowe

  • liczba1 -eq liczba2 – liczba1 i liczba2 są równe (ang. equal).
  • liczba1 -ne liczba2 – liczba1 i liczba2 są różne (ang. not equal).
  • liczba1 -gt liczba2 – liczba1 jest większa od liczby liczba2 (ang. greater than).
  • liczba1 -ge liczba2 – liczba1 jest większa lub równa liczbie liczba2. (ang. greater than or equal).
  • liczba1 -lt liczba2 – liczba1 jest mniejsza od liczby liczba2 (ang. less than).
  • liczba1 -le liczba2 – liczba1 jest mniejsza lub równa liczbie liczba2 (ang. less than or equal).

Operatory

Przykład

if test ! -s "$1"
then
  echo plik $1 nie istnieje lub jest pusty.
fi

sprawdza, czy plik o nazwie będącej w zmiennej $1 istnieje lub jest pusty.

Linki zewnętrzne