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

Linux Discussion :

Description de code shell


Sujet :

Linux

  1. #1
    Membre éclairé
    Inscrit en
    Décembre 2005
    Messages
    455
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 455
    Par défaut Description de code shell
    Bonjour, est ce que quelqu'un pourrait m'expliquer cette commande?
    merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    charger_fichier.sh fichier %s || exit 1

  2. #2
    Membre Expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Par défaut Re: Debutante: Description de code shell
    Citation Envoyé par claralavraie
    Bonjour, est ce que quelqu'un pourrait m'expliquer cette commande?
    merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    charger_fichier.sh fichier %s || exit 1
    On lance le script "charger_fichier.sh", en lui précisant les paramètres "fichier" et "%s".

    En cas d'échec du script appelé, on sort du script en cours avec un code d'erreur à 1.

    Le pendant de || mais pour le succès de l'exécution du script appelé est &&.

  3. #3
    Membre éclairé
    Inscrit en
    Décembre 2005
    Messages
    455
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 455
    Par défaut
    OK je comprends mieux:
    donc voici la commande globale
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ls -latr fichier_* | awk ' {cmd=sprintf("charger_fichier.sh fichier %s || exit 1",substr($9,9,11)); system(cmd);}
    Donc si je comprends bien cette commande, on liste les fihiers_*.
    A chaque fichier trouvé, on lance charger_fichier.sh avec en paremètre fichier et %s.
    Par contre je ne sais pas comment on obtient le %s.
    est ce le substr?

  4. #4
    Membre Expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Par défaut
    Citation Envoyé par claralavraie
    OK je comprends mieux:
    donc voici la commande globale
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ls -latr fichier_* | awk ' {cmd=sprintf("charger_fichier.sh fichier %s || exit 1",substr($9,9,11)); system(cmd);}
    Avec toute la commande, c'est autre chose !!!
    (par ailleurs, il manque la simple quote de terminaison du script awk )

    Dans le cas présent, il est fait une liste de fichiers, au moyen du ls.
    Tous ces noms de fichiers, en "fichier_*" sont envoyés à un script awk.

    Le script awk, pour chaque ligne de la liste de fichiers passés va construire une variable (chaine de caractères) à coup de sprintf.
    Cette chaine de caractères contiendra "charger_fichier.sh fichier XXXXXX || exit 1" où XXXXXX sera remplacé par les caractères 9 à 11 du 9e champ de la ligne en cours de traitement de la liste de fichiers.
    Ensuite, le script awk lance, au niveau système, la commande constituée par cette chaine stockée dans la variable cmd.

    Le %s est un des paramètres de format du sprintf. Il indique qu'il faut placer, ici, une chaine qui se trouve dans les paramètres à suivre.


    P.S. Il y avait probablement moyen de tout faire en shell, sans invoquer awk pour ça.

  5. #5
    Membre éclairé
    Inscrit en
    Décembre 2005
    Messages
    455
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 455
    Par défaut
    ah bon?
    et comment peut on faire ça?

  6. #6
    Membre Expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Par défaut
    Attention, non testé, mais quelquechose comme ceci ne doit pas être loin de la solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for nom in $(ls -1art fichier_*); do ( charger_fichier.sh fichier ${nom:9:11} || exit 1 ) ; done
    Attention, le premier des caractères après le - du ls est un chiffre 1, pas la lettre l.

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

Discussions similaires

  1. code shell erreur
    Par amissan51 dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 27/05/2012, 16h59
  2. Code shell Java non exécuté sur 2008 r2 serveur
    Par neuneu1 dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 22/02/2012, 18h05
  3. ré-ecrire un code shell en perl (bloqué)
    Par paissad dans le forum Langage
    Réponses: 2
    Dernier message: 03/05/2010, 09h08
  4. Code shell à partir d'un résultat Sqlplus
    Par zaki25 dans le forum Linux
    Réponses: 1
    Dernier message: 16/11/2006, 10h22

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