Petit probleme script

yasss -  
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
J'ai un petit problème quand a la création d'un script qui crée des dossier de façon récursive.
Pouvez vous m'aidez?
Merci d'avance
#!/bin/sh

i=0

if test -d $i; then
    rm -rf $i
fi
    
    while [ $i -le '10' ]
        do
            mkdir $i
            i = expr ' $i+1 '
        done
       




3 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    #!/bin/sh
    
    i=0
    
    if test -d $i; then
        rm -rf $i
    fi
        
        while [ $i -le '10' ]
            do
                mkdir $i
                ((i++))
            done
    

    ;-))
    1
  2. yasss
     
    Merci pour ton aide mais le problème persiste. J'ai une ligne qui s'affiche sans cesse après avoir créer le dossier 0.

    je cite : "
    ./mkdir.sh: 13: i++: not found
    mkdir: ne peut créer le répertoire '0': Le fichier existe
    ./mkdir.sh: 13: i++: not found
    mkdir: ne peut créer le répertoire '0': Le fichier existe
    ./mkdir.sh: 13: i++: not found
    mkdir: ne peut créer le répertoire '0': Le fichier existe
    ./mkdir.sh: 13: i++: not found
    mkdir: ne peut créer le répertoire '0': Le fichier existe
    ./mkdir.sh: 13: i++: not found
    mkdir: ne peut créer le répertoire '0': Le fichier existe
    ./mkdir.sh: 13: i++: not found
    mkdir: ne peut créer le répertoire '0': Le fichier existe

    "
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Quelle système as-tu ?
      Quelle distrib ?
      Quelle shell ? (ls -l /bin/sh)

      Chez moi il n'y a pas de problèmes ;-\

      $ ls -l /bin/sh
      lrwxrwxrwx 1 root root 4 2010-06-09 16:08 /bin/sh -> bash*
      
      $ ls
      foo.sh*
      
      $ cat foo.sh
      #! /bin/sh
      i=0
      
      if test -d $i; then
          rm -rf $i
      fi
      
          while [ $i -le '10' ]
              do
                  mkdir $i
                  ((i++))
              done
      
      $ ./foo.sh
      
      $ ls
      0/  1/  10/  2/  3/  4/  5/  6/  7/  8/  9/  foo.sh*
      
      0
  3. yasss
     
    lrwxrwxrwx 1 root root 4 2009-11-19 15:18 /bin/sh -> dash
    Je suis sous Ubuntu 9.10 - le Koala Karmique

    Ouai je comprend pas pk!
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      lrwxrwxrwx 1 root root 4 2009-11-19 15:18 /bin/sh -> dash
      Le problème c'est "dash" (c'est un shell batard ;--(( )

      Change ton shebang pour "#! /bin/bash" au début de ton script (faut-il que bash soit installé ;-\)
      0