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 :

Traiter les flux de sortie


Sujet :

Linux

  1. #1
    Membre habitué Avatar de soulhouf
    Inscrit en
    Août 2005
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 213
    Points : 133
    Points
    133
    Par défaut Traiter les flux de sortie
    bonjour,
    j'ai script fait des traitements mais parfois il y a des erreurs.
    est ce qu'il y a un moyen de filtrer les résultats suivant le cas si c'est du stdout ou stderr?
    merci d'avance

  2. #2
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Points : 4 029
    Points
    4 029
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    etienne@info1:~ $ ls -l aze test.sh 1>stdout 2>stderr
    etienne@info1:~ $ cat stdout
    -rwxr-xr-x  1 etienne etienne 17 2006-03-16 12:10 test.sh
    etienne@info1:~ $ cat stderr
    ls: aze: Aucun fichier ou répertoire de ce type
    Que veux tu savoir plus exactement ?

  3. #3
    Membre expérimenté
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Points : 1 664
    Points
    1 664
    Par défaut
    La plupart des shell proposent une redirection differente pour les deux sorties standard (csh ne le permet pas).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    toto > toto.out 2>toto.err

  4. #4
    Membre habitué Avatar de soulhouf
    Inscrit en
    Août 2005
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 213
    Points : 133
    Points
    133
    Par défaut
    en fait ce que je voudrai faire c'est un peu comme le traitement des exceptions dans les languages de haut niveau: quand une commande échoue ou il y a un problème, je fais le traitement nécessaire.
    voilà

  5. #5
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Points : 4 029
    Points
    4 029
    Par défaut
    peut être que le code retour, c'est à dire $? te servirait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    etienne@info1:~/Desktop $ lazdazd
    bash: lazdazd: command not found
    etienne@info1:~/Desktop $ echo $?
    127
    etienne@info1:~/Desktop $ ls
    12115864.pdf      fortune                 nxclient_1.5.0-141_i386.deb
    etienne@info1:~/Desktop $ echo $?
    0

  6. #6
    Membre habitué Avatar de soulhouf
    Inscrit en
    Août 2005
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 213
    Points : 133
    Points
    133
    Par défaut
    Citation Envoyé par ggnore
    peut être que le code retour, c'est à dire $? te servirait :
    j'ai pensé à cette solution moi aussi mais le problème est que le message d'erreur "bash: lazdazd: command not found" est affiché dans ce cas et ce n'est pas ce que je souhaite

  7. #7
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ lazdazd 2>/dev/null || echo error
    error

  8. #8
    Membre habitué Avatar de soulhouf
    Inscrit en
    Août 2005
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 213
    Points : 133
    Points
    133
    Par défaut
    Citation Envoyé par laurentschneider
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ lazdazd 2>/dev/null || echo error
    error
    merci c'est exactement ce que je veux faire chapeau bas
    j'ai en fait une autre petite question (je suis chiant): j'ai une boucle qui parcourt les différents params du script
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for i in $*
    do
        #blabla
    done
    est ce qu'il y a un moyen de commencer non pas par le 1er param mais le deuxième?

  9. #9
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    Citation Envoyé par soulhouf
    merci c'est exactement ce que je veux faire chapeau bas
    j'ai en fait une autre petite question (je suis chiant): j'ai une boucle qui parcourt les différents params du script
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for i in $*
    do
        #blabla
    done
    est ce qu'il y a un moyen de commencer non pas par le 1er param mais le deuxième?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $ cat /tmp/x          
    #!/bin/ksh
    shift
    for p in $*
    do
    echo $p
    done
    $ /tmp/x un deux trois
    deux
    trois

  10. #10
    Membre habitué Avatar de soulhouf
    Inscrit en
    Août 2005
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 213
    Points : 133
    Points
    133
    Par défaut
    laurentschneider>>thanks you're the man

Discussions similaires

  1. Livre sur les flux d'entrée/sortie
    Par oodini dans le forum Livres
    Réponses: 3
    Dernier message: 04/04/2014, 17h41
  2. Réponses: 0
    Dernier message: 24/04/2012, 21h30
  3. Réponses: 1
    Dernier message: 17/03/2009, 10h13
  4. Réponses: 4
    Dernier message: 18/08/2003, 09h53
  5. Traiter les caractères spéciaux
    Par ricola dans le forum Langage
    Réponses: 2
    Dernier message: 20/02/2003, 09h23

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