Commande FOR

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. Modérateur
    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
    1. Modérateur
      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
      1. Contributeur
        Ou
        BC1="Rep1 Rep2 Rep3"

        for BC in $BC1
        do
        cp -R /users/SUM /users/$BC;
        done
        0
        1. Modérateur
          Salut,

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