1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| $ function in_array() {
# définition de variables propres à la fonction et isolées du reste du script
local x needle="$1"
# effacement du premier paramètre positionnel
shift
# y a-t-il au moins un élément au tableau passé en argument
if [ -n "$1" ]
# alors, pour x dans les paramètres positionnels (in "@" est implicite)
then for x
do [ "$x" = "$needle" ] && { echo 1; return;}
# l'évaluation arithmétique retournera vrai
done
fi
#le else est implicite, et si la boucle for va jusqu'au terme de sa liste
echo 0
# l'évaluation arithmétique retournera faux
}
$ needle=bla Array=(foo bar bla baz)
$ (( $(in_array $needle "${Array[@]}") )) && echo "$needle est dans \"${Array[@]}\""
bla est dans "foo bar bla baz"
$ (( $(in_array autre "${Array[@]}") )) && echo "$needle est dans \"${Array[@]}\""
$ |
Partager