Prøve
test er et UNIX -værktøj til at kontrollere filtyper og sammenligne værdier. Returnerer en returkode på 0 (sand) eller 1 (falsk) afhængigt af evalueringen af udtrykket expr. Udtryk kan enten være unære eller binære. Unære udtryk bruges ofte til at kontrollere status for en fil. Du kan også sammenligne tal og strenge.
Startende med UNIX System III blev værktøjet indbygget, og dets anden form, [. [en]
Brug
test [expr]test {--help,--version}
Bruges normalt i simple shell-scripts til forskellige former for kontrol. Følgende eksempel vil slette den almindelige test.txt-fil, hvis den findes, eller vise en meddelelse om, at filen ikke eksisterer.
#!/bin/sh
hvis test -f test.txt
derefter
rm test.txt
ellers
echo 'fil test.txt ikke fundet'
fi
For at forkorte scriptkoden skal du bruge paroperatoren '[' som et synonym for test. Paroperatoren kræver et mellemrum mellem parenteser, fordi [ (parentes) er en shell -kommando , og POSIX -kompatible skaller kræver et mellemrum mellem kommandoen og dens argumenter.
#!/bin/sh
hvis [ -f test.txt ]
derefter
rm test.txt
ellers
echo 'fil test.txt ikke fundet'
fi
Startindstillinger
-b filesand, hvis filen eksisterer og er en speciel blokenhed.-c filesand, hvis filen eksisterer og er en tegnenhed.-d filetrue hvis filen eksisterer og er en mappe.-e fileer sand, hvis filen eksisterer.-f filesand, hvis filen eksisterer og er en almindelig fil.-g filesand, hvis filen eksisterer og har et gruppe-id (set-group-id) indstillet.-k filesand, hvis filen har den sticky bit indstillet.-L filesand, hvis filen eksisterer og er et symbolsk link.-p filetrue hvis filen eksisterer og er en navngivet pipe (pipe).-r filesand, hvis filen findes og kan læses.-s filesand, hvis filen eksisterer og har en størrelse større end nul.-S filesand, hvis filen eksisterer og er en socket.-t [fd]sand hvis fd er åben på terminalen. Hvis fd udelades, er standardværdien 1 (stdout).-u filesand, hvis filen eksisterer og har brugerbit (set-bruger-id) indstillet.-w filesand, hvis filen eksisterer og er skrivbar.-x filetrue, hvis filen eksisterer og er eksekverbar.-O filesand, hvis filen eksisterer, og dens ejer har et effektivt bruger-id.-G filesand, hvis filen eksisterer, og dens ejer har et effektivt gruppe-id.file1 -nt file2sand, hvis fil1 er nyere (ændret dato) end fil2.file1 -ot file2sand, hvis fil1 er ældre end fil2.file1 -ef file2sand, hvis fil1 og fil2 har samme enhed og inodenummer.-z string— sandt, hvis strengens længde er nul.-n stringer sand, hvis længden af strengen ikke er nul.string1 = string2sandt, hvis strengene er ens.string1 != string2sandt, hvis strengene ikke er ens.! exprer sandt, hvis expr er falsk.expr1 -a expr2er sandt, hvis både udtr1 og udtr2 er sande.expr1 -o expr2er sandt, hvis mindst et af udtrykkene udtr1 eller udtr2 er sandt.arg1 %оператор% arg2 -eq, -ne, -lt, -le, -gt, или -ge- disse binære aritmetiske operationer returnerer sand, hvis arg1 er lig med (-eq), ikke lig med (-ne), mindre end (-lt), mindre end eller lig med (-le), større end (-gt), eller henholdsvis større end eller lig med (-ge) end arg2. arg1 og arg2 kan være positive heltal, negative heltal eller de specielle -l-strengudtryk, der beregner længden af en streng.
Noter
- ↑ traditionel Bourne shell familie/historie og udvikling . www.in-ulm.de. Hentet 15. juli 2017. Arkiveret fra originalen 14. april 2020.
Links
test(1)- man page til GNU/Linux brugerdefinerede kommandoer ( se GNU Coreutils )test(1)- man -side for OpenBSD - brugerkommandoertest(1)- man -side for FreeBSD - brugerkommandoer