Controleren of een directory bestaat

Fish Shell:
Controleren of een directory bestaat

Hoe:

Controleer of een map bestaat met een simpel test commando:

if test -d /pad/naar/map
    echo "Map bestaat"
else
    echo "Zulke map bestaat niet"
end

Voorbeelduitvoer wanneer de map bestaat:

Map bestaat

Voorbeelduitvoer wanneer de map niet bestaat:

Zulke map bestaat niet

Diepgaand

Het test commando ([ ] in POSIX shells) is al decennia lang onderdeel van Unix-achtige systemen. In Fish controleert test -d op het bestaan van een map. Dit is een betere aanpak dan vertrouwen op uitvoer van commando’s zoals ls, die inconsistent of omslachtig kunnen zijn.

Alternatieven:

  • status kan bepalen of een vorig commando, zoals cd /pad/naar/map, succesvol was. Echter, dit wordt niet aanbevolen puur voor bestaanscontroles, aangezien het de staat van de shell verandert.
  • Externe gereedschappen zoals find of scripttalen (Python, Ruby) kunnen vergelijkbare taken uitvoeren, maar zijn vaak teveel van het goede voor simpele controles.

Implementatiedetails: Fish’s ingebouwde test commando is efficiënt en betrouwbaar. Het vermijdt veel voorkomende valkuilen bij het aanroepen van externe commando’s en biedt een eenvoudige syntax.

Zie Ook