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 confirmé Avatar de soulhouf
    Inscrit en
    Août 2005
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 213
    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 : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    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 ?
    Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux

  3. #3
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    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 confirmé Avatar de soulhouf
    Inscrit en
    Août 2005
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 213
    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 : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    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
    Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux

  6. #6
    Membre confirmé Avatar de soulhouf
    Inscrit en
    Août 2005
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 213
    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
    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 confirmé Avatar de soulhouf
    Inscrit en
    Août 2005
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 213
    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
    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 confirmé Avatar de soulhouf
    Inscrit en
    Août 2005
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 213
    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