Bash testen of een bestand bestaat

Op deze pagina:

Als je in een bash script wil controleren of een bestand bestaat, dan kan je daarvoor de opdracht test gebruiken.

Er zijn 3 notaties van test mogelijk:


# test opdracht gevolgd door de parameters

BESTAND=/var/log/apache2/access.log

if test -f "$BESTAND"; then
    echo "$BESTAND bestaat."
else 
    echo "$BESTAND bestaat niet."
fi

# Deze schrijfwijze kan ook:

test -f $BESTAND && echo "$BESTAND bestaat." || echo "$BESTAND bestaat niet."

# parameters tussen enkele vierkante haken
# voor comptabiliteit met oudere systemen

BESTAND=/var/log/apache2/access.log

if [ -f "$BESTAND" ]; then
    echo "$BESTAND bestaat."
else 
    echo "$BESTAND bestaat niet."
fi

# Deze schrijfwijze kan ook:

[ -f $BESTAND ] && echo "$BESTAND bestaat." || echo "$BESTAND bestaat niet."

# parameters tussen dubbele vierkante haken
# dit is de meest moderne versie

BESTAND=/var/log/apache2/access.log

if [[ -f "$BESTAND" ]]; then
    echo "$BESTAND bestaat."
else 
    echo "$BESTAND bestaat niet."
fi

# Deze schrijfwijze kan ook:

[[ -f $BESTAND ]] && echo "$BESTAND bestaat." || echo "$BESTAND bestaat niet."

Controleren of een map bestaat

Controleren of een map bestaat gaat op dezelfde manier als controleren of een bestand bestaat, maar ditmaal met de parameter -d ipv -f.

Er zijn 3 notaties van test mogelijk:


# test opdracht gevolgd door de parameters

MAP=/var/snap

if test -d "$MAP"; then
    echo "$MAP bestaat."
else 
    echo "$MAP bestaat niet."
fi

# Deze schrijfwijze kan ook:

test -d $MAP && echo "$MAP bestaat." || echo "$MAP bestaat niet."

# parameters tussen enkele vierkante haken
# voor comptabiliteit met oudere systemen

MAP=/var/snap

if [ -d "$MAP" ]; then
    echo "$MAP bestaat."
else 
    echo "$MAP bestaat niet."
fi

# Deze schrijfwijze kan ook:

[ -d $MAP ] && echo "$MAP bestaat." || echo "$MAP bestaat niet."

# parameters tussen dubbele vierkante haken
# dit is de meest moderne versie

MAP=/var/snap

if [[ -d "$MAP" ]]; then
    echo "$MAP bestaat."
else 
    echo "$MAP bestaat niet."
fi

# Deze schrijfwijze kan ook:

[[ -d $MAP ]] && echo "$MAP bestaat." || echo "$MAP bestaat niet."

 

Verwante artikelen