À l'intérieur de parenthèses simples pour le test de condition (c'est-à-dire [ ... ]), certains opérateurs tels que le test de condition simple [ ... ] peuvent être utilisés. =
est supporté par tous les shells, alors que l'utilisation de l'opérateur ==
n'est pas supporté par certains des anciens shells.
À l'intérieur de doubles crochets pour le test de condition (c'est-à-dire [[ ... ]]), il n'y a pas de différence entre l'utilisation de =
ou ==
dans des coquilles anciennes ou nouvelles.
Edit : Je dois aussi noter que : En bash, utilisez toujours les doubles crochets [[ ... ]] si possible, car c'est plus sûr que les crochets simples. Je vais illustrer pourquoi avec l'exemple suivant :
if [ $var == "hello" ]; then
si $var se trouve être null / empty, alors c'est ce que le script voit :
if [ == "hello" ]; then
ce qui brisera votre script. La solution est soit d'utiliser des doubles crochets, soit de toujours penser à mettre des guillemets autour de vos variables ( "$var"
). La double parenthèse est une meilleure pratique de codage défensif.