test (Unix)
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!