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 :

Bonne syntaxe pour une fonction utilisable dans un pipe


Sujet :

Shell et commandes GNU

  1. #1
    Membre du Club
    Homme Profil pro
    sans
    Inscrit en
    juillet 2019
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : juillet 2019
    Messages : 60
    Points : 42
    Points
    42
    Par défaut Bonne syntaxe pour une fonction utilisable dans un pipe
    Bonjour et re,

    la question c'est le titre.
    je pense qu'il existe une façon beaucoup plus élégante, et surtout beaucoup plus robuste, de parvenir à coder, pour utiliser une fonction maison, autrement que sous la forme :

    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
     
    !#/bin/bash
    # ceci est une fonction, un script, une commande sourcer ou dans le path
    function maison {
     
      while getops :desopts:avecousansarg: ; do
        case $opt in
          tout le machin
        esac
     done
     
     test args sans option ? (why not)
     
     # **** prise en compte du pipe
     while read line; do
      # traitement de ce qui arrive par le pipe, en tenant compte des arguments, et des options ...
      # et là c'est compliqué aussi, si le pipe envoie ligne par ligne ou pas, si je veux en sortie ligne par ligne ou pas ...
      # mais encore c'est + la syntaxe qui me préoccupe pour le moment, read, n'y a t'il pas mieux ? (en même temps read, c'est le fondement de la puissance  
     done
     
    }
    Merci d'avance, de m'éclaircir tout ça.

  2. #2
    Membre du Club
    Homme Profil pro
    sans
    Inscrit en
    juillet 2019
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : juillet 2019
    Messages : 60
    Points : 42
    Points
    42
    Par défaut
    Citation Envoyé par Dens1 Voir le message
    en tenant compte des arguments, ...
    car je me suis aperçu (pardon je suis presque novice à ce niveau, que) que les arguments ne sont pas ce qui arrive par le pipe

  3. #3
    Responsable Systèmes


    Homme Profil pro
    Technicien maintenance
    Inscrit en
    août 2011
    Messages
    14 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : août 2011
    Messages : 14 576
    Points : 33 658
    Points
    33 658
    Par défaut
    As tu compris ce qu'est un pipe ?

    Un pipe permet de chainer 2 commandes, la seconde prenant en entrée la sortie de la première commande.

    Les arguments, c'est ce que tu passes à un programme, ex:
    cat fichier.txt : ficihier.txt est l'argument fourni à la commande cat.

    Dans un langage de programmation, ou de script, une fonction va également (ou non) attendre des arguments qui lui sont passé à son appel et exploités dans le corps de la fonction.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  4. #4
    Membre du Club
    Homme Profil pro
    sans
    Inscrit en
    juillet 2019
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : juillet 2019
    Messages : 60
    Points : 42
    Points
    42
    Par défaut
    bonjour,
    j'ai dû mal m'exprimer. Ou j'ai parlé en périphérie pour dresser un topo qui m'importe peu. Le problème n'est pas les arguments de la fonction.
    le problème est la bonne syntaxe pour qu'une fonction soit utilisable dans un pipe, la gestion des options et des arguments coulera de source.

    EDIT: j'ai modifié l'intitulé, Coder n'était pas approprié à mon humble avis

  5. #5
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    avril 2008
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : avril 2008
    Messages : 1 957
    Points : 5 384
    Points
    5 384
    Par défaut
    Citation Envoyé par Dens1 Voir le message
    le problème est la bonne syntaxe pour qu'une fonction soit utilisable dans un pipe,
    J'ai du mal à comprendre ce que tu veux précisément

    La bonne syntaxe pour utiliser une fonction dans un pipe, c'est de définir la fonction et de l'utiliser dans le pipe...

    Je ne sais pas quoi répondre d'autre si ce n'est montrer un exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $ function mongrep() {
       grep "$1"
    }
     
    $ echo -e "coucou\nboubou" | mongrep 'bou'
    boubou
    La fonction mongrep (qui est une version hautement améliorée de grep) est définie avec le mot-clé function (qui n'est d'ailleurs pas obligatoire) et est utilisée dans le pipe...

    Cela répond-il à ta question ?

  6. #6
    Membre du Club
    Homme Profil pro
    sans
    Inscrit en
    juillet 2019
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : juillet 2019
    Messages : 60
    Points : 42
    Points
    42
    Par défaut
    j'y réfléchis dès que je peux et je reviens vers toi. Visiblement soit je ne comprends pas un truc qui coule de source, soit j'ai mal posé ma question. Je reviens avec des exemples, plus tard. Merci pour ta réponse.

Discussions similaires

  1. Réponses: 4
    Dernier message: 21/03/2011, 11h54
  2. [SP-2007] Créer une fonction utilisable dans les champs calculés
    Par lolomoss dans le forum SharePoint
    Réponses: 4
    Dernier message: 25/06/2009, 08h49
  3. où déclarer une fonction utilisée dans toutes mes jsp ?
    Par aurelientp dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 22/02/2008, 10h38
  4. Utiliser une fonction excel dans une macro et proprièté range
    Par bebel9313 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 11/08/2007, 14h25
  5. [Requête] Utilisation d'une fonction perso dans une requête
    Par Julien Dufour dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 16/03/2007, 09h53

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