Certes, mais il utilise explicitement bash, il n'y a donc pas de raison de s'interdire l'utilisation de [[, qui a l'avantage d'être une construction du langage (voir la documentation de bash), ce qui évite notamment de lancer une commande à chaque fois.
Disons que pour une raison que j'ignore, lorsque j'ai testé le [[ avec bash, ça n'a pas marché, et j'en ai déduit que bash ne prenait pas cette construction. J'ai été conforté dans mon erreur par le messae du posteur initial qui disait :
./diap_users.sh: line 23: [[ : commande introuvable
Je n'avais pas percuté que le shell voulait utiliser la commande '[[ ' (double crochet avec espace derrière), j'en ai donc conclu à tort que les doubles crochets n'étaient pas reconnus par bash.
Cependant après avoir retesté, j'ai vu que ça fonctionnait, donc ma remarque sur le fait que bash ne reconnaisse pas le double crochet est donc erronée.
Maintenant, sur le fait d'utiliser des spécificités d'un shell donné, je suis assez partagé : personnellement, dans le cas de la syntaxe des tests, je préfère largement (et recommande grandement) d'utiliser la syntaxe qui sera reconnue par le plus grand nombre de shell possible: ça évite de se prendre la tête quand on passe d'un environnement à un autre. Par contre, je suis moins catégorique sur les spécificités avancées d'un shell par rapport à un autre, car celles-ci peuvent rendre bien des services, et là c'est du cas par cas : si la façon de faire la plus générale ne complique pas trop les choses, j'opterai pour cette façon de faire, mais si le shell que j'utilise permet de simplifier grandement la résolution d'un problème donné par une de ses spécificités (ou qu'une spécificité rende le code beaucoup plus lisible), j'adopterai sans hésiter cette façon de faire.
[^] # Re: Remplace les doubles crochets par des simples dans ton test , et mettre un espace ...
Posté par totof2000 . En réponse au message Problème de script SHELL. Évalué à 2.
Disons que pour une raison que j'ignore, lorsque j'ai testé le [[ avec bash, ça n'a pas marché, et j'en ai déduit que bash ne prenait pas cette construction. J'ai été conforté dans mon erreur par le messae du posteur initial qui disait :
Je n'avais pas percuté que le shell voulait utiliser la commande '[[ ' (double crochet avec espace derrière), j'en ai donc conclu à tort que les doubles crochets n'étaient pas reconnus par bash.
Cependant après avoir retesté, j'ai vu que ça fonctionnait, donc ma remarque sur le fait que bash ne reconnaisse pas le double crochet est donc erronée.
Maintenant, sur le fait d'utiliser des spécificités d'un shell donné, je suis assez partagé : personnellement, dans le cas de la syntaxe des tests, je préfère largement (et recommande grandement) d'utiliser la syntaxe qui sera reconnue par le plus grand nombre de shell possible: ça évite de se prendre la tête quand on passe d'un environnement à un autre. Par contre, je suis moins catégorique sur les spécificités avancées d'un shell par rapport à un autre, car celles-ci peuvent rendre bien des services, et là c'est du cas par cas : si la façon de faire la plus générale ne complique pas trop les choses, j'opterai pour cette façon de faire, mais si le shell que j'utilise permet de simplifier grandement la résolution d'un problème donné par une de ses spécificités (ou qu'une spécificité rende le code beaucoup plus lisible), j'adopterai sans hésiter cette façon de faire.