Linux test commando tutorial voor beginners (met voorbeelden)

Soms wil je tijdens het werken op de Linux commandoregel bepaalde dingen testen, zoals gehele getallen, of dat een bestand wel of niet van een bepaald type is? Je zult blij zijn te weten dat er een ingebouwd commandoregel hulpprogramma test is waarmee je de meeste van deze vergelijkingen en tests kunt doen.

In deze zelfstudie bespreken we de grondbeginselen van dit hulpmiddel aan de hand van enkele gemakkelijk te begrijpen voorbeelden. Maar voor we dat doen, is het de moeite waard te vermelden dat alle voorbeelden in het artikel getest zijn op Ubuntu 16.04 LTS.

Linux test commando

Zoals hierboven al gezegd, wordt het test commando gebruikt om controles en vergelijkingen uit te voeren. Hier staat zijn syntaxis:

test EXPRESSION

En hier is wat de man pagina over dit hulpprogramma zegt:

test - check file types and compare values

Hieronder volgen enkele vraag-antwoord-achtige voorbeelden die je een goed idee moeten geven over hoe het gereedschap werkt.

Opmerking: Bedenk dat sommige van de commandoregelopties die test geeft het nuttigst zijn als ze binnen shell scripts gebruikt worden.

Q1. Hoe vergelijk je twee strings?

Eenvoudig, je hoeft er alleen maar het gelijk aan (=) teken tussen te zetten. Bijvoorbeeld:

test howto = forge

Een betere manier zou zijn om iets als dit te schrijven:

test howto = forge && echo "same"

Dus als de strings gelijk zijn, moet het woord “same” in de uitvoer afgedrukt worden, anders wordt er niets afgedrukt.

Hoe vergelijk je twee snaren?

Op dezelfde manier kun je het volgende sjabloon gebruiken als je wilt testen op ongelijkheid.

STRING1 != STRING2

Q2. Hoe kan je gehele getallen vergelijken met test?

Ook dit is heel eenvoudig – vergelijk ze gewoon met ‘-eq’. Bijvoorbeeld:

test 5 -eq 7 && echo "same"

Hier zie je een schermafbeelding die toont hoe deze commandoregeloptie werkt:

Hoe gehele getallen vergelijken met test?

Op dezelfde manier kun je‘-ge‘ gebruiken om groter dan of gelijk aan te testen,‘-gt‘ voor groter dan,‘-le‘ voor kleiner dan of gelijk aan,‘-lt‘ voor kleiner dan, en‘-ne‘ voor niet gelijk.

Q3. Hoe kun je bestanden testen/vergelijken met test?

Om te testen welke van de twee bestanden nieuwer is, gebruik je ‘-nt’. Bijvoorbeeld:

test file1 -nt file2

Hier zie je hoe ik het op mijn systeem testte:

Hoe bestanden testen/vergelijken met test?

Andere bestandsvergelijkingen die je kunt uitvoeren zijn o.a. welk van de twee bestanden ouder is (-ot) en of twee bestanden dezelfde apparaat- en inode nummers hebben (-ef).

Om te controleren of een gegeven bestand een directory is, gebruik je de -d optie op de volgende manier:

test -d [bestandsnaam]

Bijvoorbeeld:

test -d new_dir

Hieronder volgen nog enkele andere bestandstype testopties die het ’test’ commando biedt:

Resultaat van het gebruik van het testcommando

Q4. Hoe gaat test commando om met symbolische links?

Het test commando derefereert symbolische links, hoewel er een paar uitzonderingen zijn. Het volgende is wat de man page hierover zegt:

Except for -h and -L, all FILE-related tests dereference symboliclinks.

Voor het geval je het niet weet: zowel -h als -L controleren of een bestand bestaat en een symbolische link is – dus hun uitsluiting is logisch, toch?

Conclusie

Het test commando biedt een heleboel opties, maar in grote lijnen kun je ze in 3-4 categorie├źn groeperen. Over elke categorie hebben we voorbeelden gegeven. Probeer deze dus uit, en als je klaar bent, ga dan naar deman pagina van het hulpprogramma voor meer info.