Array en parametre fonction
Bonjour à tous,
J'ai créer une fonction, et j'aimerai qu'elle prenne en paramètre deux tableaux (ça a pour but de copier les fichiers dans SOURCE, vers les répertoires de CIBLE => cp $SOURCE /mon_repertoire/$CIBLE pour chaque ligne des tableaux).
J'ai trouvé une manière de faire sur le net, mais le souci c'est que si une valeur dans le tableau est vide, il la supprime...
Voilà mon script, merci pour votre aide :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
#!/bin/bash
export SOURCE=(
"fichier1"
"fichier2"
"fichier3"
"fichier4"
)
export CIBLE=(
"rep1"
""
"rep1/sousrep1"
""
)
function test
{
array_1=($(eval echo $(echo \${$1[@]})))
array_2=($(eval echo $(echo \${$2[@]})))
for file_1 in ${array_1[*]}
do
echo "$file_1"
done
echo "----"
for file_2 in ${array_2[*]}
do
echo "$file_2"
done
}
test SOURCE CIBLE |
J'ai ça en sortie :
Code:
1 2 3 4 5 6 7 8 9 10
|
bash-3.2$ ./s.sh
fichier1
fichier2
fichier3
fichier4
----
rep1
rep1/sousrep1
bash-3.2$ |
Et j'aimerais qu'il retrouve mes lignes vides dans le tableau "CIBLE" sinon ça me décale tout au niveau des répertoires..