Testkommandoen kan brukes på Linux-kommandolinjen for å sammenligne ett element mot en annen, men det er mer vanlig brukt i BASH-skalskript som en del av betingede setninger som styrer logikk og programflyt.
Et grunnleggende eksempel
Du kan prøve disse kommandoene ved å åpne et terminalvindu.
test 1-eq 2 && echo "yes" || ekko "nei"
Kommandoen ovenfor kan brytes ned som følger: I hovedsak er kommandoen sammenlignet med 1 til 2, og hvis de samsvarer, utføres eko-ja-setningen som viser "ja", og hvis de ikke samsvarer, utføres ekko-nei-setningen som viser "nei". Hvis du sammenligner elementer som analyserer som tall, kan du bruke følgende sammenligningsoperatører: eksempler test 1-eq 2 && echo "yes" || ekko "nei"
(viser "nei" til skjermen fordi 1 ikke er lik 2) test 1 -ge 2 && echo "yes" || ekko "nei"
(viser "nei" til skjermen fordi 1 ikke er større eller lik 2) test 1 -gt 2 && echo "yes" || ekko "nei"
(viser "nei" til skjermen fordi 1 ikke er større enn 2) test 1-2 og & ekko "ja" || ekko "nei"
(viser "ja" til skjermen fordi 1 er mindre enn eller lik 2) test 1 -lt 2 && echo "yes" || ekko "nei"
(viser "ja" til skjermen fordi 1 er mindre enn eller lik 2) test 1 -ne 2 && echo "yes" || ekko "nei"
(viser "ja" til skjermen fordi 1 ikke er lik 2) Hvis du sammenligner elementer som analyserer som strenger, kan du bruke følgende sammenligningsoperatører: eksempler test "string1" = "string2" && echo "yes" || ekko "nei"
(viser "nei" til skjermen fordi "streng1" ikke er lik «streng2») test "string1"! = "string2" && echo "yes" || ekko "nei"
(viser "ja" til skjermen fordi "streng1" ikke er lik «streng2») test -n "string1" && echo "yes" || ekko "nei"
(viser "ja" til skjermen fordi "string1" har en strenglengde større enn null) test -z "string1" && echo "yes" || ekko "nei"
(viser "nei" til skjermen fordi "streng1" har en strenglengde større enn null) Hvis du sammenligner filer, kan du bruke følgende sammenligningsoperatører: eksempler test / bane / til / fil1 -nt / bane / til / fil2 && ekko "ja"
(Hvis fil1 er nyere enn fil2, vil ordet "ja" bli vist) test -e / path / to / file1 && echo "yes"
(hvis fil1 eksisterer vil ordet "ja" bli vist) test -O / path / to / file1 && echo "yes"
(hvis du eier filen1 så blir ordet "ja" vist ") Terminologi Hittil har alt vært å sammenligne en ting mot en annen, men hva om du vil sammenligne to forhold? For eksempel, hvis et dyr har 4 bein og går "moo", er det sannsynligvis en ku. Bare å sjekke for 4 ben garanterer ikke at du har en ku, men kontrollerer lyden som det sikkert gjør. For å teste begge forholdene på en gang, bruk følgende setning: test 4-eq 4 -a "moo" = "moo" && echo "det er en ku" || ekko "det er ikke en ku"
Hoveddelen her er -a som står for og . Det er en bedre og mer vanlig måte å utføre samme test på, og det er som følger: test 4-eq 4 && test "moo" = "moo" && echo "det er en ku" || ekko "det er ikke en ku"
En annen test du kanskje vil lage er å sammenligne to setninger, og hvis enten er sant, skriv ut en streng. Hvis du for eksempel vil kontrollere at en fil med navnet "file1.txt" eksisterer eller en fil som heter "file1.doc", kan du bruke følgende kommando: test -e file1.txt -o -e file1.doc && echo "file1 exists" || ekko "file1 eksisterer ikke"
Hoveddelen her er den som står for eller . Det er en bedre og mer vanlig måte å utføre samme test på, og det er som følger: test -e file1.txt || test -e file1.doc && echo "file1 exists" || ekko "file1 eksisterer ikke" Du trenger ikke å bruke ordtesten for å utføre sammenligningen. Alt du trenger å gjøre er å legge til setningen i firkantede parentes som følger: -e file1.txt && echo "file1 exists" || ekko "file1 eksisterer ikke"
Og betyr egentlig det samme som testen. Nå vet du dette du kan forbedre ved å sammenligne flere forhold som følger: 4-eq 4 && "moo" = "moo" && echo "det er en ku" || ekko "det er ikke en ku"-e file1.txt || -e file1.doc && echo "file1 exists" || ekko "file1 eksisterer ikke" Testkommandoen er mer nyttig i skript fordi du kan teste verdien av en variabel mot en annen og kontrollprogramflyten. På standardkommandolinjen kan du bruke den til å teste om en fil eksisterer eller ikke.
Sammenligning av tall
Sammenligning av tekst
Sammenligning av filer
Sammenligning av flere betingelser
Eliminerer Test Søkeord
Sammendrag