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 :

Liste de fichier dans un script shell


Sujet :

Shell et commandes GNU

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 10
    Points : 8
    Points
    8
    Par défaut Liste de fichier dans un script shell
    Bonjour, je dois créer un script shel permettant d'effacer un fichier simplement en tapant le numero de fichier,
    c'est a dire que l'utilisateur en lancant le script doit voir apparaitre la liste de fichier dans le repertoire avec des numero de fichiers et en tapant ce numero ca doit l'effacer, j'arrive a lister les fichiers avec la commande : ls -alt | head | nl
    mais je ne sais comment récuperer le numero afin de pouvoir l'utiliser dans la commande rm...

    Je suis débutant en script c'est pour un projet info et je bloque...

  2. #2
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    man bash...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    read [-er] [-a nom_a] [-p msg] [nom ...]
        Une ligne est lue depuis l'entrée standard, puis le premier mot de cette ligne est affecté au premier nom, le second mot au second nom, et ainsi de suite. Les mots restants sont affectés au dernier nom. S'il y a moins de mots que de variables, celles restantes sont remplies avec des valeurs vides. Les caractères contenus dans la variables IFS sont utilisés comme délimiteurs de mots. Le caractère backslash (\) permet de supprimer toute signification spécial pour le caractère suivant, et autorise la continuation de lignes. Les options éventuelles ont les significations suivantes :
     
            -r
                Le basckslash n'est pas un caractère d'échappement. Il est considéré comme faisant partie de la ligne. En particulier la paire backslash/retour-chariot ne permet pas de faire une continuation de ligne. 
            -p
                Afficher le message msg, sans retour-chariot final avant la lecture. Le message n'est affiché que si la lecture a lieu depuis un terminal. 
            -a
                Les mots sont affectés aux rangs successifs d'une variable tableau de nom nom_a, en commençant à 0. nom_a est détruit avant d'affecter de nouvelles valeurs. Les autres nom sont ignorés. 
            -e
                Si l'entrée standard provient d'un terminal, la bibliothèque readline (voir READLINE plus bas) est utilisée pour obtenir la ligne. 
     
     
            Si aucun nom n'est fourni, la ligne lue est affectée entièrement à la variable REPLY. Le code de retour est nul, sauf si une fin-de-fichier est rencontrée.
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  3. #3
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 10
    Points : 8
    Points
    8
    Par défaut --
    la commande read je l'utilise pour entrer un nom au clavier et pour m'en servir de variable par la suite dasn mon scritp, je vois pas comment avec read je peux recuperer le numero du fichier dans le ls...

    J'avais prevenu qye j'etais débutant...

  4. #4
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    ben une fois que tu as le numéro...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ls ....  | head -N | tail -1
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  5. #5
    Membre expérimenté
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Points : 1 680
    Points
    1 680
    Par défaut
    Voici un exemple qu'il faudra amélioré pour gérer les espaces dans les noms de fichier et le fait que si un fichier s'appelle QUIT il ne pourra pas être supprimé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #!/bin/bash
    LISTFILE=$(ls -1)
    OPTIONS="$LISTFILE QUIT"
    select opt in $OPTIONS; do
            if [ "$opt" = "QUIT" ]; then
                    echo done
                    exit
            else
                    rm -i $opt
            fi
    done

  6. #6
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par narmataru
    Voici un exemple qu'il faudra amélioré pour gérer les espaces dans les noms de fichier et le fait que si un fichier s'appelle QUIT il ne pourra pas être supprimé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #!/bin/bash
    LISTFILE=$(ls -1)
    OPTIONS="$LISTFILE QUIT"
    select opt in $OPTIONS; do
            if [ "$opt" = "QUIT" ]; then
                    echo done
                    exit
            else
                    rm -i $opt
            fi
    done
    le code fonctionne avec quelques modification en bash, seulement je suis en csh et j'ai une erreur : illegal variable name

Discussions similaires

  1. Appel d'un fichier dans un script shell
    Par Herbauges dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 01/12/2006, 12h03
  2. Liste de fichiers dans Word
    Par olgga dans le forum VBA Word
    Réponses: 1
    Dernier message: 01/03/2006, 22h16
  3. Programme en C dans un script shell
    Par am.adnane dans le forum Linux
    Réponses: 1
    Dernier message: 05/02/2006, 17h57
  4. Syntaxe dans un script shell
    Par cubepiege dans le forum Linux
    Réponses: 5
    Dernier message: 27/09/2005, 16h21
  5. [JSP] liste de fichiers dans une appli web
    Par cyrso dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 21/01/2005, 17h17

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