Posez votre question Signaler

[bash] ouvrir un terminal

sbj - Dernière réponse le 23 mai 2012 à 21:48
Bonjour,
je voudrais connaitre une commande bash, qui permette d'ouvrir un nouveau terminal ET qui me permette de travailler dedans ... Pour l'instant j'arrive a faire ce genre de script :
#!/bin/bash echo "je suis sur le terminal de départ" gnome-terminal echo " je suis sur le terminal que je viens  d'ouvrir" 
. Le problème c'est qu'avec gnome-terminal j'ouvre bien un nouveau terminal, mais je continue mon script sur le premier !
Si vous avez des idées... Toutes aide est la bienvenue !
Lire la suite 

[bash] ouvrir un terminal »

6 réponses
Réponse
+0
moins plus
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 :
#!/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
sbj - 15 avril 2009 à 18:38
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 ...
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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- 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.
Ajouter un commentaire
Réponse
+0
moins plus
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 ;)
Ajouter un commentaire
Ce document intitulé « [bash] ouvrir un terminal » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?