Overzicht
Het commando test evalueert de opgegeven expressie en retourneert een exitstatus van 0 als deze waar is, en 1 als deze onwaar is. Dit wordt voornamelijk gebruikt voor conditionele uitvoering in shell-scripts zoals `if` en `while` statements. Het commando `[` is een andere vorm van het `test` commando, en `[[` biedt uitgebreide functionaliteit in Bash/Ksh/Zsh.
Belangrijkste functies
- Controleren van bestandstypen en attributen
- Vergelijken van tekenreekswaarden
- Vergelijken van integerwaarden
- Logische operaties (AND, OR, NOT)
Belangrijkste opties
Het commando test evalueert voorwaardelijke expressies met behulp van verschillende unaire en binaire operatoren.
Controleren van bestandattributen
Vergelijken van tekenreeksen
Vergelijken van integers
Logische operatoren
Gegenereerde opdracht:
Probeer de opdrachtcombinaties.
Uitleg:
`test` Voer het commando uit.
Combineer deze opties en voer de opdracht virtueel uit met de AI.
Gebruiksvoorbeelden
Voorbeelden van het evalueren van verschillende voorwaardelijke expressies met het commando test.
Controleren of een bestand bestaat
if test -e /etc/passwd; then echo "Het bestand /etc/passwd bestaat."; fi
Controleert of het bestand `/etc/passwd` bestaat.
Controleren of het een directory is
if test -d /tmp; then echo "/tmp is een directory."; fi
Controleert of `/tmp` een directory is.
Vergelijken van tekenreeksen
MY_VAR="hello"
if test "$MY_VAR" = "hello"; then echo "De variabelwaarde is hello."; fi
Controleert of de waarde van de variabele `MY_VAR` gelijk is aan 'hello'.
Vergelijken van integers
COUNT=15
if test "$COUNT" -gt 10; then echo "COUNT is groter dan 10."; fi
Controleert of de waarde van de variabele `COUNT` groter is dan 10.
Logische AND-bewerking
touch file.txt
if test -f file.txt -a -s file.txt; then echo "file.txt bestaat en is niet leeg."; fi
rm file.txt
Controleert of `file.txt` bestaat en niet leeg is.
Gebruik van `[` in plaats van test
if [ -f /etc/hosts ]; then echo "Het bestand /etc/hosts bestaat."; fi
Het commando `test` kan worden vervangen door `[`. In dit geval moet het worden afgesloten met `]`.
Tips & Aandachtspunten
Handige tips en aandachtspunten bij het gebruik van het commando test.
Belangrijkste tips
- Het commando `[` is identiek aan het commando `test` en moet worden afgesloten met `]`. `[` en `]` worden behandeld als afzonderlijke argumenten, dus spaties zijn verplicht.
- Het commando `[[` wordt alleen ondersteund in Bash, Ksh en Zsh en biedt krachtigere functies (zoals reguliere expressies, spatieverwerking, etc.). Binnen `[[` is het veilig om variabelen niet tussen aanhalingstekens te plaatsen.
- Bij het gebruik van variabelen is het altijd veilig om ze tussen dubbele aanhalingstekens te plaatsen (bijv. `test "$VAR" = "value"`). Dit voorkomt fouten die kunnen optreden als de variabele leeg is of spaties bevat.
- Gebruik `-eq`, `-ne`, `-gt`, `-lt`, `-ge`, `-le` voor integervergelijkingen en `=`, `!=`, `-z`, `-n` voor tekenreeksvergelijkingen. Verwarring kan leiden tot onverwachte resultaten.