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 : Sélectionner tout - Visualiser dans une fenêtre à part
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