• [^] # Re: Consigne

    Posté par . En réponse au message Unix, pipelines. Évalué à 4.

    faire exécuter le contenu d'une variable

    C’est la substitution de commande (ie: $(command)) que tu désignes ainsi ?

    Perso ça m’évoque plus un recours au builtin eval cette formulation.

    tu passes ton temps à mettre des \ de partout

    De mon expérience, sur l’échappement :

    • Un \ ça va, c’est souvent même très utile et élégant.

    • Deux \\, il y a un forte probabilité qu’il existe un meilleur moyen de faire ce que tu souhaites.

    • Trois \\\, le code est mauvais, il est crucial de prendre un peu de repos, puis le temps de la réflexion pour récrire toute la partie du code concernée.

    J’en profite pour évoquer quelque chose que j’ai appris trop tard dans mon apprentissage du shell, Bash en l’occurrence. Je ne sais pas pour KSH, ZSH ou la norme POSIX, mais je pense qu’il existe de semblables subtilités.

    Il n’y a pas moins de 4 façons de valoriser une variable « scalaire » (ie: hors tableau et nameref), et pour lesquelles le caractère anti-slash, entre autre, n’a pas le même comportement :

    toto=valeur
    toto="valeur"
    toto='valeur'
    toto=$"valeur"
    toto=$'valeur'
    

    Le manuel vous l’expliquera assurément mieux que moi ! ^^