test (Unix)

testuniksowe 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 plikplik jest blokowym plikiem specjalnym. (ang. block special file).
  • -c plikplik jest znakowym plikiem specjalnym (ang. character special file).
  • -d plikplik jest katalogiem (ang. directory).
  • -e plikplik istnieje (ang. exists).
  • -f plikplik jest normalnym plikiem (ang. regular file).
  • -g plikplik ma ustawiony GID.
  • -h plikplik jest dowiązaniem symbolicznym.
  • -k plikplik ma ustawiony sticky bit.
  • -L plikplik jest dowiązaniem symbolicznym.
  • -p plikplik jest potokiem nazwanym (ang. pipe).
  • -r plikplik można odczytać ang. readable).
  • -s plikplik ma rozmiar większy niż 0 (ang. size).
  • -u plikplik ma ustawiony UID.
  • -w plikplik ma włączoną flagę zapisu (ang. write) dla użytkownika, który wywołał polecenie.
  • -x plikplik ma włączoną flagę wykonania (ang. execute) dla użytkownika, który wywołał polecenie.
  • -t deskryptordeskryptor jest otwarty i powiązany z terminalem.
  • plik1 -nt plik2plik1 jest nowszy od pliku plik2 (ang. newer than).
  • plik1 -ot plik2plik1 jest starszy od pliku plik2 (ang. older than).
  • plik1 -ef plik2plik1 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 liczba2liczba1 i liczba2 są równe (ang. equal).
  • liczba1 -ne liczba2liczba1 i liczba2 są różne (ang. not equal).
  • liczba1 -gt liczba2liczba1 jest większa od liczby liczba2 (ang. greater than).
  • liczba1 -ge liczba2liczba1 jest większa lub równa liczbie liczba2. (ang. greater than or equal).
  • liczba1 -lt liczba2liczba1 jest mniejsza od liczby liczba2 (ang. less than).
  • liczba1 -le liczba2liczba1 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