Startpagina > Omgeving & hulpmiddelen > test

test: Evaluatie van voorwaardelijke expressies

Het commando test wordt gebruikt om voorwaarden te construeren in shell-scripts. Het evalueert verschillende voorwaardelijke expressies, zoals het controleren van bestandstypen of het vergelijken van tekenreeks- en numerieke waarden, en retourneert waar (0) of onwaar (1). Deze retourwaarde wordt gebruikt in controlestructuren zoals `if`-statements.

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.

Hétzelfde categoriecommando