Je veux vérifier si les trois variables sont identiques, puis imprimer
if [ "$x1" == "$x2" == "$3" ]; then echo "all are same" fi
Je reçois cette erreur:
[: trop d’arguments
Vous ne pouvez pas comparer trois variables à la fois. Au lieu de cela, comparez-les en blocs de deux:
if [ "$x1" = "$x2" ] && [ "$x2" = "$x3" ]; then echo "all are same" fi
Puisque vous utilisez bash
, je vous recommande d’utiliser
if [[ "$x1" == "$x2" && "$x2" == "$x3" ]]; then
Si vous avez besoin / souhaitez conserver la compatibilité POSIX en utilisant [ ... ]
, vous ne devez pas utiliser ==
.
if [ "$x1" = "$x2" ] && [ "$x2" = "$x3" ]; then
bash
vous permet d’utiliser le non-standard ==
avec [
, mais il est inutile de mélanger les comportements standard et non standard.
utilisation:
if [ "$x1" = "$x2" -a "$x2" = "$x3" ]
testé ici