Commande FOR

Romain - 28 févr. 2007 à 13:07
 Romain - 28 févr. 2007 à 14:12
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 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 896
28 févr. 2007 à 13:17
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 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 896
28 févr. 2007 à 13:25
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 18785 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 6 mai 2025 5 631
28 févr. 2007 à 13:59
Ou
BC1="Rep1 Rep2 Rep3"

for BC in $BC1
do
cp -R /users/SUM /users/$BC;
done
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
28 févr. 2007 à 14:02
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
Merci pour les réponses
0