IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Script normalisé problème


Sujet :

Shell et commandes GNU

  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 606
    Par défaut 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 : 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

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 658
    Par défaut
    Bonjour,

    tu as écrit ton script sur Windows.
    les caractères de fin de ligne ne correspondent pas avec ceux utilisés sur UNIX/linux.

    il faut le convertir avec fromdos.

    ensuite, un shebang commence par un caractère #.

    ensuite, tu as trois fi en trop :ensuite, en fin de script 2>/dev/null ne sert à rien ici.

    ensuite, les variables doivent être systématiquement mises entre guillemets.

    ensuite, mv $fichier tr "A-Z" "a-z" ???
    fais donc des tests en console avant d'écrire un script.
    de plus, cette fonction (mise en minuscule) peut être assurée par la substitution de paramètres.

    j'en oublie sûrement.

    enfin, lis donc les tutoriels inscrits dans ma signature.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 606
    Par défaut
    ok , merci de votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. script shell: problème avec le caractère espace
    Par Le fut dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 04/05/2017, 11h49
  2. Script Upload problème d'emplacement du fichier uploadé
    Par Phoenix0007 dans le forum Serveurs (Apache, IIS,...)
    Réponses: 7
    Dernier message: 09/10/2007, 19h52
  3. Erreur dans script mémoire - problème de calcul
    Par arnaudperfect dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 30/07/2007, 12h01
  4. [PHP-JS] script PHP problème
    Par beru333 dans le forum Langage
    Réponses: 7
    Dernier message: 18/06/2006, 23h42
  5. [SCRIPT WMI]Problèmes de permissions...
    Par zell45 dans le forum Windows
    Réponses: 6
    Dernier message: 09/05/2006, 13h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo