test je program nacházející se v Unixových systémech. Slouží k vyhodnocení výrazu, který je v daném formátu předán jako argumenty na příkazové řádce. Hojně se používá při vyhodnocování podmínek v shellech (např. bash). Při skriptování v unixových shellech se namísto test vyraz více používá ekvivalentní varianta [ vyraz ], která se více podobá programátorskému zápisu.

Použití

editovat

Návratová hodnota

editovat

V případě pravdivého výrazu vrací příkaz test 0.

Uveďme typické příklady použití:

(Ne)Rovnost řetězců

editovat
  test $STR1 = $STR2
  test $STR1 != $STR2

Relace mezi dvěma celými čísly

editovat
  -eq: rovnost,
  -ge: levý operand větší nebo roven pravému
  -gt: levý operand větší než pravý
  analogicky -le, -lt, -ne

Příklad (je levý operand větší než pravý?):

 
  test $NUM1 -gt $NUM2

Práce se soubory

editovat

Tento příkaz zkontroluje, zda $DIR existuje a je zároveň adresářem:

  test -d $DIR

Přepínač -e použijeme pro ověření existence souboru.

Použití při větvení

editovat

Uveďme příklad pro kontrolu počtu argumentů. Předpokládejme, že jsme napsali skript, který vyžaduje pevný počet vstupních argumentů (např. 3). Proveďme tedy kontrolu a v případě neúspěchu vraťme kladnou hodnotu indikující neúspěch:

 if test "$#" -ne 3; then
   echo "Spatny pocet argumentu!"
   exit 1
 fi

Nebo jiným zápisem:

 if [ "$#" -ne 3 ]; then
   echo "Spatny pocet argumentu!"
   exit 1
 fi

Za povšimnutí stojí to, že v druhém případě je potřeba správně vložit mezery. Níže uvedenému shell rozumět nebude

 [3 -eq 3]

protože shell nezná program s názvem [3.