Petit probleme script

Fermé
yasss - 25 oct. 2010 à 16:05
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 26 oct. 2010 à 12:27
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

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
25 oct. 2010 à 16:26
Salut,

#!/bin/sh

i=0

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

;-))
1
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
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
Modifié par jipicy le 26/10/2010 à 12:14
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
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
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
26 oct. 2010 à 12:27
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