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.
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:
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:
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:
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.