Entre le programme true, et le programme [ , je trouve que le shell c'est de la bidouille ...
C’est horrible ce [... genre if [ -z $v ]; then... ça ressemble à quoi ? :) On peut même ôter le crochet fermant qui n’est autorisé par le langage que pour la seule bonne raison qu’un crochet ouvert qui reste ouvert c’est très grave... presque autant qu’une parenthèse !
Maintenant j’essaie d’écrire : if test -z $v; then... c’est bien ce qu’il y a de plus logique et clair à lire selon moi.
Oui le shell c’est spécial comme « langage de programmation » vu que ce n’en ai pas vraiment un.
En m’y mettant j’ai eu un peu de mal avec la logique binaire... On a l’habitude de considérer que 1 représente vrai et 0 représente faux, or le code retour des programmes c’est 0 pour OK, par convention. Si je fais un if (rm toto) et que la commande « plante » (parce que le fichier toto n’existe pas par exemple) ma condition sera fausse.
L’utilisation des opérateurs && et || entre plusieurs commandes permet souvent d’être concis et élégant, je trouve.
[^] # Re: false
Posté par Marotte ⛧ . En réponse au journal Le core utile. Évalué à 5.
C’est horrible ce
[... genreif [ -z $v ]; then...ça ressemble à quoi ? :) On peut même ôter le crochet fermant qui n’est autorisé par le langage que pour la seule bonne raison qu’un crochet ouvert qui reste ouvert c’est très grave... presque autant qu’une parenthèse !Maintenant j’essaie d’écrire :
if test -z $v; then...c’est bien ce qu’il y a de plus logique et clair à lire selon moi.Oui le shell c’est spécial comme « langage de programmation » vu que ce n’en ai pas vraiment un.
En m’y mettant j’ai eu un peu de mal avec la logique binaire... On a l’habitude de considérer que 1 représente vrai et 0 représente faux, or le code retour des programmes c’est 0 pour OK, par convention. Si je fais un if (rm toto) et que la commande « plante » (parce que le fichier toto n’existe pas par exemple) ma condition sera fausse.
L’utilisation des opérateurs
&&et||entre plusieurs commandes permet souvent d’être concis et élégant, je trouve.