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,

    on peu faire aussi avec un coup de find ou ls avec xargs
    1. Contributeur
      Ou
      BC1="Rep1 Rep2 Rep3"

      for BC in $BC1
      do
      cp -R /users/SUM /users/$BC;
      done
      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
        ;-))
        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
          ;-))