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 ?
Configuration: Windows XP
Internet Explorer 6.0

5 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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
  2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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
  3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    Ou
    BC1="Rep1 Rep2 Rep3"

    for BC in $BC1
    do
    cp -R /users/SUM /users/$BC;
    done
    0
  4. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    on peu faire aussi avec un coup de find ou ls avec xargs
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question