Par curiosité, lors de la comparaison d'une variable bash (sa valeur étant un integer
), il est possible de la tester par rapport à une valeur prédéfinie déclarée en tant que int
ou en tant que string
.
Exemple de script :
#!/bin/bash
f1()
{
[ "$1" == "1" ] && echo "$FUNCNAME: \"1\" compared as string"
}
f2()
{
[[ "$1" -eq 1 ]] && echo "$FUNCNAME: \"1\" compared as int"
}
f1 $1
f2 $1
Sortie :
$ ./param.sh 1
f1: "1" compared as string
f2: "1" compared as int
et
$ ./param.sh blah
$
Les deux fonctions se comportent de la même manière, et je me demande donc s'il existe une méthode préférée lors de la vérification d'une variable entière? J'irais pour la vérification int
contre int
car c'est plus strict mais je me demande s'il y a des inconvénients à le faire string
?
Dans ce cas, f2()
la comparaison est également plus stricte, c'est-à-dire que le passage d'une valeur décimale la cassera, alors que f1()
cela ne posera aucun problème.