• [^] # Re: Programmation défensive en bash

    Posté par . En réponse au journal Args parser pour shell. Évalué à 1.

    Par moment on ne se souvient plus de pourquoi on fait les chose comme cela ...
    Donc d'après mes notes, j'utilise [[ ]] et non [] car la variable de [ -f $variablequinexistepas ] est considérée comme une chaîne de caractère vide, le test est donc vrais.

    $ [ -f $variablequinexistepas ] && echo ok || echo ko
    ok
    $ [[ -f $variablequinexistepas ]] && echo ok || echo ko
    ko

    En doublon avec le set -u

    [ -d "{mondossier}"

    Effectivement ca fonctionne, mais je trouve plus logique : si quelque chose n'existe pas, je fais ..
    Au contraire de si quelque chose existe ... je passe ? sinon je le créer.

    mkdir -p "${mondossier}"

    Si "${mondossier}" est vide ou n'existe pas ça va planter.