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 :

Question script Shell


Sujet :

Shell et commandes GNU

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 10
    Points : 7
    Points
    7
    Par défaut Question script Shell
    Bonjour,

    j'essaye de bidouiller un peu sur le shell de Linux pour apprendre, et je suis face à un mystère.
    J'ai trouvé ce scripte :

    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
    #! /bin/bash 
     
    EXTENSION=$1 
     
    function crerep() 
    { 
            if  mkdir $1$2 2> /dev/null;then 
                    echo "le dossier "$1$2" n'existe pas, je le créé" 
            else 
                    NB=$2 
                    NB=$((NB+1)) 
                    crerep $1 $NB 
            fi 
    } 
     
    if [ -z $EXTENSION ];then 
            echo -n "Donne l'extension à trier : " 
            read $EXTENSION 
    fi 
     
    if [ ! -d $EXTENSION ];then 
            crerep $EXTENSION 
    fi 
     
    for VARIABLE in $(ls -1 *.$EXTENSION) 
            do 
                    mv $VARIABLE $EXTENSION 
                    echo "je deplace "$VARIABLE 
            done 
     
    exit 0
    Je crois qu'il y a une erreur dedans, et je ne comprends pas ni ou elle est , ni ce que ce scripte fait vraiment en fait .
    Est-ce qu'il range dans différents répertoires les dossiers nommés ? Il trie ?
    Merci de votre aide

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 596
    Points : 19 481
    Points
    19 481
    Par défaut
    Bonjour,

    ce script est mal écrit !
    si tu ne le comprends pas, ne t'en sers pas.
    si c'est un exercice, relis tes cours.

    sinon :
    • énumère tes besoins
    • écris ce que tu peux faire
    • et, alors, ouvre un nouveau sujet portant sur ce qui te pose problème.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Bonsoir,

    Merci de ta réponse

    En fait je pense comprendre les petits éléments, c'est le but final du scripte qui m'échappe.

    Je maitrise les bases.

    J'ai trouvé ce petit scripte sur des archives d'un cours d'informatique. Mais je n'en suis pas personnellement.

  4. #4
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 739
    Points : 31 068
    Points
    31 068
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Magea Voir le message
    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
    #! /bin/bash 
    
    EXTENSION=$1 
    
    function crerep() 
    { 
            if  mkdir $1$2 2> /dev/null;then 
                    echo "le dossier "$1$2" n'existe pas, je le créé" 
            else 
                    NB=$2 
                    NB=$((NB+1)) 
                    crerep $1 $NB 
            fi 
    } 
    
    if [ -z $EXTENSION ];then 
            echo -n "Donne l'extension à trier : " 
            read $EXTENSION 
    fi 
    
    if [ ! -d $EXTENSION ];then 
            crerep $EXTENSION 
    fi
    Je crois qu'il y a une erreur dedans, et je ne comprends pas ni ou elle est , ni ce que ce scripte fait vraiment en fait .
    Est-ce qu'il range dans différents répertoires les dossiers nommés ? Il trie ?
    Merci de votre aide
    Bonjour

    Il y a 2 erreurs (en rouge)
    1) la fonction crerep attend 2 paramètres ($1$2) mais on ne lui en passe qu'un seul ($EXTENSION)
    2) on ne met pas "$" quand on charge une variable avec read

    Sinon c'est un script (pas de "e") qui range les fichiers ayant une certaine extension dans un dossier du nom de l'extension (par exemple il range dans le dossier "mp3" tous les fichiers ".mp3")

  5. #5
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 276
    Points : 13 553
    Points
    13 553
    Par défaut
    Bonjour,

    J'ai l'impression que dans un dossier contenant des jpg, png et gif, il s'agit de créer des dossiers nommés jpg, png et gif et de déplacer les fichiers ayant ces extensions dans les dossiers correspondants. Le script est de toute façon mal écrit.

  6. #6
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 311
    Points : 12 830
    Points
    12 830
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Bonjour

    Il y a 2 erreurs (en rouge)
    1) la fonction crerep attend 2 paramètres ($1$2) mais on ne lui en passe qu'un seul ($EXTENSION)
    2) on ne met pas "$" quand on charge une variable avec read

    Sinon c'est un script (pas de "e") qui range les fichiers ayant une certaine extension dans un dossier du nom de l'extension (par exemple il range dans le dossier "mp3" tous les fichiers ".mp3")
    Bonjour,
    Pour la première erreur, je ne suis pas sur que cela en soit une, car si on regarde la fonction elle-même, elle se rappelle avec le deuxième paramêtre si la création du répertoire échoue (en gros, on lui fourni l'extension, et elle crée quoi qu'il arrive un nouveau répertoire dont le nom est extension et si besoin indicé).
    Bon, cette fonction à interet à avoir acces en écriture pour pouvoir le créer son répertoire sinon la pile du shell risque de souffrir

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    OK je comprends mieux.

    Merci beaucoup de votre aide !

  8. #8
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 739
    Points : 31 068
    Points
    31 068
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par disedorgue Voir le message
    Pour la première erreur, je ne suis pas sur que cela en soit une, car si on regarde la fonction elle-même, elle se rappelle avec le deuxième paramêtre si la création du répertoire échoue (en gros, on lui fourni l'extension, et elle crée quoi qu'il arrive un nouveau répertoire dont le nom est extension et si besoin indicé).
    Ah oui, j'avais pas tilté ce détail.
    Bigre, utiliser la récursivité là où une simple boucle avec un test suffirait... Je me demande qui est l'auteur de cette oeuvre...

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

Discussions similaires

  1. Script shell
    Par anzar dans le forum Linux
    Réponses: 4
    Dernier message: 03/12/2004, 15h41
  2. [JSP] script shell
    Par goolix dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 06/08/2004, 10h08
  3. Exécution d'un script shell
    Par Manu0086 dans le forum Linux
    Réponses: 8
    Dernier message: 15/06/2004, 17h31
  4. Explication script shell
    Par crasho007 dans le forum Linux
    Réponses: 2
    Dernier message: 14/06/2004, 14h54
  5. Cron + terminal + script shell
    Par nicolas.pissard dans le forum Linux
    Réponses: 3
    Dernier message: 17/03/2004, 10h24

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