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 :

Comment utiliser exec pour rediriger stdoud vers un FD


Sujet :

Shell et commandes GNU

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Comment utiliser exec pour rediriger stdoud vers un FD
    Bonjour,

    J'explique mon problème.
    J'aimerais faire un script shell qui prend en argument 2 fichiers, chacun contenant une matrice de dimension n*m, et qui en fait l'addition et affiche le résultat sur stdout.

    Jusque là tout va bien j'ai réussi à ce que ca marche.
    Le problème est que je me sert de fichiers temporaires.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    exec 3< $1
    exec 4< $2
     
    ## Boucle principale qui decrit les lignes des 2 matrices
    while [ $CPT_LINE1 -ne 0 ]
    do
        ## Lecture des lignes #i de chaque matrice depuis FD 3 et 4
        read line1 0<&3
        read line2 0<&4
        ## Redirection des 2 lignes lues vers les FD 5 et 6
        echo $line1 > line1.tmp
        echo $line2 > line2.tmp
        exec 5< line1.tmp
        exec 6< line2.tmp
    Voila le code, et j'aimerais remplacer les quatre dernières lignes pour ne pas utiliser de fichiers temporaires pour stocker les lignes des 2 matrices.

    J'ai essayé des choses comme "exec 5< echo $line1", "exec 5< $line1" mais rien ne fonctionne.

    Si quelqu'un a une idée ou une suggestion. Merci

  2. #2
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Points : 3 284
    Points
    3 284
    Par défaut
    As tu essayé avec les back-quote ` ` (sur un clavier azerty AltGr + 7)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    exec 5< `echo $line1`
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    exec 5< $(echo $line1)

  3. #3
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 595
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 595
    Points : 19 477
    Points
    19 477
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var="ga bu zo meuh"
    exec 5 < $(echo "$var")
    bash: $(echo "$var") : redirection ambiguë
    aïe!

    mais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var="ga bu zo meuh"
    exec 5< <(echo "$var") #ou exec 5<<< $(echo "var")
    read -u 5
    echo $REPLY
    ga bu zo meuh
    edit: et p'i c'est tout !

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    Merci beaucoup ça marche très bien et en 2 lignes au lieu des 4. ;p

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

Discussions similaires

  1. [TPW] Comment utiliser tdw pour tpw 1.5 ?
    Par Grebarne dans le forum Turbo Pascal
    Réponses: 1
    Dernier message: 20/12/2006, 15h03
  2. comment utiliser Scanner pour parser un String?
    Par ricardvince dans le forum Langage
    Réponses: 4
    Dernier message: 03/10/2006, 14h15
  3. Réponses: 4
    Dernier message: 18/05/2006, 09h20
  4. comment utiliser Notepad pour modifier un fichier texte?
    Par moon13_698 dans le forum Autres Logiciels
    Réponses: 7
    Dernier message: 06/05/2006, 15h41
  5. Réponses: 2
    Dernier message: 27/04/2006, 16h45

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