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 :

STDIN et scripts


Sujet :

Linux

  1. #1
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Janvier 2003
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 133
    Points : 101
    Points
    101
    Par défaut STDIN et scripts
    bonjour a tous

    je galere beaucoup sur mon probleme et je ne trouve pas de documentation, donc j'en fais appel a vous concernant mon probleme.
    j'ai un script bash que je souhaite ameliorer en lui proposant de l'appeler de deux facons differentes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    > ./mon_script.sh < mon_fichier_csv
    ou dans ce cas, mon fichier csv sera parsé et serivra au traitement de mon script.
    et le deuxieme mode d'appel serait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    > ./mon_script.sh 
    zzzzzzzzzzzzzzzzzzzzzz
    zzzzzzzzzzzzzzzzzzzzzz
    zzzzzzzzzzzzzzzzzzzzzz
    zzzzzzzzzzzzzzzzzzzzzz
    ou z serait les données que je parserais.
    ce fichier ou ces données passées en parametre de mon script vont servir a creer un fichier qui servira a un script php appelé dans le .sh

    voici a quoi ressemble pour le moment l'executable
    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
    22
    23
    24
    25
    26
    27
     
    #!/bin/bash
    ###########################
    # DECLARATION DES VARIABLES
    ###########################
    SOURCEFILE=test.csv
    TMPFILE=test.tmp
     
    ##########################
    # determination du fichier d'entrée
    ##########################
     
    # c'est ici que cela me pose probleme : je ne sais pas comment lire ce qui # est lu au clavier, et comment arreter de boucler
    # et dans le cas ou  un fichier est fourni a STDIN, comment le recuperer ici 
    if ! test -r /dev/tty0
    then
    	while test /dev/tty0 != 'EOF' 
    	do
    		/dev/tty0 >> $TMPFILE
    	done
    	SOURCEFILE = $TMPFILE
    fi
     
    ###############
    # appel du php
    ###############
    ./parsing.php --source="$SOURCEFILE/"
    j'ai essayé plusieurs choses, mais a vrai dire, je ne sais pas trop comment m'y prendre avec STDIN.
    Est ce que vous pourriez m'aider? merci d'avance de votre aide

  2. #2
    Membre averti

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 289
    Points : 342
    Points
    342
    Par défaut
    Pour lire l'entree standard en bash, il faut utiliser read (cf. man read ou man bash).

  3. #3
    Membre expérimenté

    Inscrit en
    Mai 2002
    Messages
    720
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 720
    Points : 1 594
    Points
    1 594
    Par défaut
    read ne lis qu'une ligne ... pour en lire plusieurs, il faut utiliser cat :

    (Ctrl + D pour arreter la saisie)

    Smortex

    Les FAQ Assembleur - Linux
    In The Beginning Was The Command Line Neal Stephenson

  4. #4
    Membre averti

    Profil pro
    Inscrit en
    Avril 2004
    Messages
    289
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 289
    Points : 342
    Points
    342
    Par défaut
    Citation Envoyé par Smortex
    read ne lis qu'une ligne ... pour en lire plusieurs, il faut utiliser cat
    Ce n'est pas interdit de faire une boucle while sur le read non plus...

  5. #5
    Membre régulier
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Janvier 2003
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 133
    Points : 101
    Points
    101
    Par défaut
    Merci a tous pour vos reponses
    effectivement je suis passé par une boucle sur un while
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    while read LINE
    do
       if [ $LINE != \^D ]; then
          break
       fi
        echo $LINE >> $MONFICHIER
    done
    le code est approximatif, je ne n'ai pas sous les yeux, mais cela revenait a ca
    merci pour vos reponses

  6. #6
    Membre expérimenté

    Inscrit en
    Mai 2002
    Messages
    720
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 720
    Points : 1 594
    Points
    1 594
    Par défaut
    ... ce qui equivaut a :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cat > $MonFichier # ou >> Si il peut avoir un contenu que l'on souhaite conserver

    Smortex

    Les FAQ Assembleur - Linux
    In The Beginning Was The Command Line Neal Stephenson

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

Discussions similaires

  1. Quel est le meilleur script PHP de portail (CMS) ?
    Par Lana.Bauer dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 187
    Dernier message: 18/10/2012, 07h45
  2. Problème script perl avec STDIN
    Par deimosfr dans le forum Langage
    Réponses: 2
    Dernier message: 23/07/2009, 10h22
  3. quel langage choisir pour faire de script sous windows
    Par pas05 dans le forum Langages de programmation
    Réponses: 7
    Dernier message: 18/11/2002, 22h42
  4. Réponses: 2
    Dernier message: 11/07/2002, 08h31

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