Comme nous le savons, en programmation bash la façon de passer des arguments est $1
, ..., $N
. Cependant, je n'ai pas trouvé facile de passer un tableau comme argument à une fonction qui reçoit plus d'un argument. Voici un exemple :
f(){
x=($1)
y=$2
for i in "${x[@]}"
do
echo $i
done
....
}
a=("jfaldsj jflajds" "LAST")
b=NOEFLDJF
f "${a[@]}" $b
f "${a[*]}" $b
Comme décrit, la fonction f
reçoit deux arguments : le premier est affecté à x
qui est un tableau, le second à y
.
f
peut être appelé de deux manières. La première consiste à utiliser la fonction "${a[@]}"
comme premier argument, et le résultat est :
jfaldsj
jflajds
La deuxième façon d'utiliser le "${a[*]}"
comme premier argument, et le résultat est :
jfaldsj
jflajds
LAST
Aucun des deux résultats n'est conforme à ce que je souhaitais. Alors, est-ce que quelqu'un a une idée sur la façon de passer un tableau entre les fonctions correctement ?