[bash] ouvrir un terminal
Fermé
sbj
-
15 avril 2009 à 13:41
LezardMoo Messages postés 554 Date d'inscription mercredi 5 janvier 2011 Statut Membre Dernière intervention 21 janvier 2015 - 23 mai 2012 à 21:48
LezardMoo Messages postés 554 Date d'inscription mercredi 5 janvier 2011 Statut Membre Dernière intervention 21 janvier 2015 - 23 mai 2012 à 21:48
A voir également:
- Ouvrir un nouveau terminal en ligne de commande
- Commande terminal mac - Guide
- Invite de commande - Guide
- Comment ouvrir un fichier epub ? - Guide
- Site de vente en ligne particulier - Guide
- Comment ouvrir un fichier docx ? - Guide
4 réponses
LezardMoo
Messages postés
554
Date d'inscription
mercredi 5 janvier 2011
Statut
Membre
Dernière intervention
21 janvier 2015
14
23 mai 2012 à 21:48
23 mai 2012 à 21:48
hello
je ne sais pas si tu as trouvé, si ce n'est pas le cas, tu peux faire comme ca
gnome-terminal -e "/chemin/vers/ton/script ;)
je ne sais pas si tu as trouvé, si ce n'est pas le cas, tu peux faire comme ca
gnome-terminal -e "/chemin/vers/ton/script ;)
mamiemando
Messages postés
33079
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
23 avril 2024
7 749
15 avril 2009 à 13:52
15 avril 2009 à 13:52
Le problème c'est que ton programme est attaché à son shell donc le terminal de départ. Ainsi la seule solution est de lancer le second terminal et passer en paramètre le script que ce second terminal doit lancer.
Je ne connais pas les possibilités de gnome (j'utilise KDE) mais en admettant que tu puisses passer en paramètre une commande comme le laisse entendre ton message, ce serait un truc du genre :
Bon ceci dit, que cherches-tu exactement à faire ? ça me paraît un brin exotique comme besoin ;-)
Bonne chance
Je ne connais pas les possibilités de gnome (j'utilise KDE) mais en admettant que tu puisses passer en paramètre une commande comme le laisse entendre ton message, ce serait un truc du genre :
#!/bin/bash echo "le programme de mon 1er terminal" gnome-terminal /le/chemin/vers/mon/script/a/lancer/dans/le/second/terminal.sh & echo "je suis toujours dans mon premier terminal"
Bon ceci dit, que cherches-tu exactement à faire ? ça me paraît un brin exotique comme besoin ;-)
Bonne chance
Effectivement, ce que je veux est très compliqué, je fais un programme en C qui se clone (avec fork) et je cherche a utilise système(commande_bash) pour lancer un nouveau terminal ou s'execute monprocessus fils !
En fait je fais une application chat ou chaque nouvelle conversation s'ouvrirait dans une fenetre differente plutot que de tout mélanger dans le même terminal ...
En fait je fais une application chat ou chaque nouvelle conversation s'ouvrirait dans une fenetre differente plutot que de tout mélanger dans le même terminal ...
mamiemando
Messages postés
33079
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
23 avril 2024
7 749
15 avril 2009 à 20:02
15 avril 2009 à 20:02
Le gros problème c'est que ton logiciel présuppose que cette personne dispose de gnome terminal et utilise un environnement graphique ce qui est un peu contraignant.
Ceci dit dans ton cas, je ferais plutôt un popen ce qui me paraît plus adapté :
http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man3/popen.3.html
Pour fermer un popen... il suffit de faire un pclose().
Bonne chance
Ceci dit dans ton cas, je ferais plutôt un popen ce qui me paraît plus adapté :
http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man3/popen.3.html
Pour fermer un popen... il suffit de faire un pclose().
Bonne chance
de toute façon avec en invoquant system tu ne peut pas avoir deux terminaux en parallèle car system est une commande bloquante tant qu'elle n'a pas fini son traitement tu ne peux rien faire. Essaye plutôt de passer par la famille exec et passe par des tubes pour communiquer.
mamiemando
Messages postés
33079
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
23 avril 2024
7 749
6 mai 2011 à 08:50
6 mai 2011 à 08:50
Disons qu'elle est bloquante dans son fil d'exécution. Mais je pense que le problème est le même avec execvp ou execve. Comme tu le suggères une solution à base de pipe (cf popen et pclose) pourrait faire l'affaire.