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 :

Utiliser le &


Sujet :

Linux

  1. #1
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut Utiliser le &
    Bonjour,

    Je me prends la tête depuis pas mal de temps pour écrire un bête truc qui ressemblerait à ceci (ici en bash mais je n'ai pas de préférence) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #!/bin/bash
    
    COUNTER=5
    
    while [ COUNTER -gt 0 ]; do
        (Un bloc d'instructions shell) &
        sleep 5
    done
    Quelle que soit la syntaxe (en fichier ou directement dans xterm avec des ";") j'ai des erreurs dès que je mets ce fichu &.

    Quelqu'un pour me guider ? Les tutoriels que j'ai vu n'en parlent pas.

  2. #2
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    Bon, je ne suis pas sûr que c'est àa que tu cherches mais bon, au cas où ...

    regarde l'exemple 20-3 de http://abs.traduc.org/abs-3.6-fr/subshells.html

    Appremment il faut utiliser des () pour les execution parallèles

    A moins que je ne sois complètement à côté de la plaque ...

  3. #3
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    Je tente ça et je te dis. J'avais pas été si loin dans les tutos, je vais m'accrocher un peu.

    EDIT Ca marche du tonnerre ! merci !

  4. #4
    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
    si tu as des erreurs, dis-nous au moins lesquelles!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $ COUNTER=5;while [ $COUNTER -gt 0 ]; do ( (echo hello world) &); sleep 5; done
    hello world
    hello world

  5. #5
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    Voilà quelques exemples de ce que je faisais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>>while true; do echo salut &; done   
    bash: syntax error near unexpected token `;'
    En fait, je ne savais pas qu'il fallait les parenthèses. Ca donne maintenant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    >>>while true; do ((echo debut1; sleep 1; echo fin1)&); ((echo debut2; sleep 1; echo fin2)&); sleep 2; done
    debut1
    debut2
    fin1
    fin2
    debut1
    debut2
    fin1
    fin2
    ^C
    On voit bien le parallélisme. C'est niquel.

  6. #6
    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
    soit des parenthèses, soit des retours chariots

    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
     
    lsc@chltlxlsc1:~> while true; do
    > (echo debut1; sleep 1; echo fin1)&
    > (echo debut2; sleep 1; echo fin2)&
    > sleep 2; done
    debut1
    [1] 9611
    debut2
    [2] 9613
    fin1
    fin2
    [1]-  Done                    ( echo debut1; sleep 1; echo fin1 )
    [2]+  Done                    ( echo debut2; sleep 1; echo fin2 )
    debut1
    [1] 9675
    debut2
    [2] 9677
    fin1
    fin2

  7. #7
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    Citation Envoyé par laurentschneider
    soit des parenthèses, soit des retours chariots
    Aaah, c'est donc ça que ça voulait dire ces > ... Bon je rajoute le tag débutant.

    En fait, intuitivement j'essayais les "", mais ça ne marchait pas.

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

Discussions similaires

  1. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  2. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36
  3. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01
  4. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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