A test egy Unix parancs, mely egy fájltípust ellenőriz és értékeket hasonlít össze.

Használata szerkesztés

A parancs általános alakja:

test [expr]

vagy

test {--help,--version}

A test program egy állapottal (status) tér vissza, amely lehet 0 (igaz) vagy 1 (hamis) az expr kifejezés logikai értékétől függően. A kifejezések lehetnek egy- vagy kétváltozósak (unary, binary). Az egyváltozós kifejezések többnyire egy fájl állapotát vizsgálják. De vannak ezen kívül string operátorok és numerikus összehasonlító operátorok is.

Opciók szerkesztés

Amikor a GNU test pontosan egy argumentumot kap, a következő opciókat ismeri fel:

    • --help

Használati útmutatót ír a standard kimenetre, majd kilép.

    • --version

A program verziójáról ír ki információt a standard kimenetre, majd kilép.

Funkciók szerkesztés

  • -b file

Igaz ha a file létezik és blokkos speciális fájl (block special).

  • -c file

Igaz ha a file létezik és karakteres speciális fájl (character special).

  • -d file

Igaz ha a file létezik és könyvtár.

  • -e file

Igaz ha a file létezik.

  • -f file

Igaz ha a file létezik és szabályos fájl.

  • -g file

Igaz ha a file létezik és set-group-id -s fájl.

  • -k file

Igaz ha a file sticky bitje be van állítva.

  • -L file

Igaz ha a file létezik és szimbolikus link.

  • -p file

Igaz ha a file létezik és csőhálózat (named pipe).

  • -r file

Igaz ha a file létezik és olvasható.

  • -s file

Igaz ha a file létezik és 0-nál nagyobb méretű.

  • -S file

Igaz ha a file létezik, és egy socket.

  • -t [fd]

Igaz ha fd egy terminálon van nyitva. Ha fd -t elhagyjuk, alapértelmezésként az 1 áll helyette, ami a standard kimenetre utal.

  • -u file

Igaz ha a file létezik és a set-user-id bitje be van állítva.

  • -w file

Igaz ha a file létezik és írható.

  • -x file

Igaz ha a file létezik és végrehajtható.

  • -O file

Igaz ha a file létezik és az aktuális felhasználó tulajdonában van.

  • -G file

Igaz ha a file létezik és az aktuális csoport tulajdonában van.

    • file1 -nt file2

Igaz ha file1 újabb (a módosítási időt tekintve), mint file2.

    • file1 -ot file2

Igaz ha file1 régebbi, mint file2.

    • file1 -ef file2

Igaz ha file1 és file2 -nek azonos eszköz- és inode-számuk van.

  • -z string

Igaz ha a string 0 hosszúságú.

  • -n string
    • string
   Igaz ha a string nem 0 hosszúságú. 
    • string1 = string2
   Igaz ha a stringek megegyeznek. 
      • string1 != string2
   Igaz ha a stringek nem egyeznek meg. 
  • ! expr
   Igaz ha expr hamis. 
    • expr1 -a expr2
   Igaz ha expr1 és expr2 is igaz. (Logikai `és'.) 
    • expr1 -o expr2
   Igaz ha expr1 vagy expr2 igaz. (Logikai `vagy'.) 
  • arg1 OP arg2
   OP valamelyik a következőkből: -eq , -ne , -lt , -le , -gt , -ge . 

Ezek az aritmetikai operátorok igaz értéket adnak, ha arg1 rendre egyenlő, nem egyenlő, kisebb mint, kisebb vagy egyenlő, nagyobb mint, nagyobb vagy egyenlő mint arg2. arg1 és arg2 pozitív vagy negatív egész kell legyen, vagy pedig a -l string speciális kifejezés, amely a string hosszát jelenti.

Példa szerkesztés

Azt akarjuk ellenőrizni, hogy egy állomány létezik-e vagy üres-e.

if test ! -s "$1"
then
  echo $1 nem létezik vagy üres.
fi

Ha a fenti parancsban az $1 paraméter által megadott állomány nem létezik, akkor a test parancs egy hibaüzenetet ír ki a képernyőre. Ha $1 létezik és mérete nagyobb mint 0, a test parancs nem ír ki semmit.

Megjegyzés: Az -s funkció és az állomány neve között kell szerepeljen egy-egy szóköz!

Kapcsolódó szócikkek szerkesztés