79 votes

Pourquoi devrait-il y avoir des espaces autour de '[' et ']' dans Bash ?

J'essayais d'écrire un script Bash qui utilise une instruction if

 if[$CHOICE -eq 1];

Le script me donnait des erreurs jusqu'à ce que je donne un espace avant et après [ et avant ] comme indiqué ci-dessous :

 if [ $CHOICE -eq 1 ];

Ma question ici est, pourquoi l'espace autour des crochets est-il si important dans Bash ?

9voto

Jahid Points 12756

[ est une commande et $CHOICE devrait être un argument, mais en faisant [$CHOICE (sans aucun espace entre [ et $CHOICE ) vous essayez d'exécuter une commande nommée [$CHOICE . La syntaxe de la commande est :

 command arguments separated with space

2voto

Prince John Wesley Points 22418

[ est une commande test . Cela demande donc de la place.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X