Commande FOR

Romain -  
 Romain -
Bonjour,

j'ai écrit un programme et j'ai un souci au niveau de ma commande FOR.
Je voudrais copier le répertoire et faire 3 répertoire selon mes valeurs données. J'ai écrit le programme suivant :
-----------------------------------------
$BC1="Rep1"
$BC2="Rep2"
$BC3="Rep3"

for BC in $BC1,$BC2,$BC3
do
cp -R /users/SUM /users/$BC;
done
-----------------------------------------
mon problème c'est que ca me crée 1 répertoire qui s'appelle "Rep1,Rep2,Rep3".
Quelle syntaxe dois je utiliser entre mes $BCx au niveau du FOR pour que ca me crée bien 3 répertoire ?
A voir également:

5 réponses

jipicy Messages postés 41342 Statut Modérateur 4 896
 
Salut,

Alors plusieurs petites choses...
Déjà pour initialiser une variable c'est :
var="blablabla"
sans "$" devant le nom.
Ensuite pour ta boucle "for" la syntaxe est la suivante :
for name in "$BC1" "$BC2" "$BC3"
do ...
...
done
ce qui donne pour ton script :
BC1="Rep1"
BC2="Rep2"
BC3="Rep3"

for name in "$BC1" "$BC2" "$BC3"
do
cp -R /users/SUM /users/"$name" 
done
;-))
0
jipicy Messages postés 41342 Statut Modérateur 4 896
 
Par contre t'aurais tout aussi bien pu construire ton script de cette façon :
i=1
while [ "$i" -le "3" ]
do cp -R /users/SUM /users/"rep$i"
i=$(expr $i + 1)
done
;-))
0
dubcek Messages postés 19021 Statut Contributeur 5 637
 
Ou
BC1="Rep1 Rep2 Rep3"

for BC in $BC1
do
cp -R /users/SUM /users/$BC;
done
0
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570
 
Salut,

on peu faire aussi avec un coup de find ou ls avec xargs
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Romain
 
Merci pour les réponses
0