Script normalisé problème
Compatible avec: bash
Bonjour,
j'ai un exercice à faire :
Ecrivez un script bash appelé normalise qui prend en argument un nom de répertoire ou bien aucun argument et qui renomme tout fichier du répertoire donné en argument (ou a défaut du répertoire courant) dont
le nom contient des espaces et/ou des majuscules en remplaçant les espaces par des soulignés et les
majuscules par leurs minuscules correspondantes.
Dans le cas particulier où le renommage d’un fichier correspond à un fichier déjà existant dans le répertoire la
modification de nom n’est pas effectuée et un message l’indiquant est affiché sur la sortie d’erreur.!
et j'ai fais ca :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| !/bin/bash
if [ -d $1 ] ; then
if [$1 eq ""] ; then cd $HOME ; fi
else cd $1 ; fi
for fichier in *
do
if [ -f $fichier ] ; then
if [[ $fichier == *[A-Z]* ]] ; then
if [ -e $1 | tr "A-Z" "a-z"] ; then
echo "Le fichier $fichier ne peut être traiter."
exit
else
mv $fichier tr "A-Z" "a-z"
if [ -e $1 | tr " " "-"] ; then
echo "Le fichier $fichier ne peut être traiter."
exit
else
mv $fichier tr " " "-"
fi
fi
fi
fi
fi
fi
done
fi
2>/dev/null |
et le terminal me répond
: No such file or directoryin/bash
./normalise.sh: line 2: $'\r': command not found
./normalise.sh: line 7: syntax error near unexpected token `$'\r''
'/normalise.sh: line 7: ` else cd $1 ; fi