Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 02/11/2011, à 17:14

ElNix

[Résolu][Bash]Ouvrir un nouveau terminal et y executer une application

Bonjour,

Dans le cadre d'un développement je lancer plusieurs applications dans plusieurs terminaux pour suivre les avancées et j'aimerais automatiser le lancement à l'aide d'un script en bash.

J'ai bien vu que "gnome-terminal&" permettait d'ouvrir un nouveau terminal mais toutes mes applications se lancent dans le terminal depuis lequel j'ai executé le script et ça donne n'importe quoi.

Pour résumer, dans un monde parfait mon script donnerait un truc du genre :

nouveau terminal : terminal 1
application1 arg1 arg2 -> terminal 1

nouveau terminal : terminal 2
application2 arg1 arg2 -> terminal 2

...

Avez vous une idée de comment réaliser ça ?

Merci d'avance pour vos réponses !

Dernière modification par ElNix (Le 05/11/2011, à 18:16)

Hors ligne

#2 Le 02/11/2011, à 17:23

mjdon

Re : [Résolu][Bash]Ouvrir un nouveau terminal et y executer une application

d'après le manuel (man gnome-terminal):

gnome-terminal -e application1 arg1 arg2 &
gnome-terminal -e application2 arg1 arg2 &

Tu peux aussi regarder du coté de screen, ça te servira peut être un jour.

Dernière modification par mjdon (Le 02/11/2011, à 17:24)

Hors ligne

#3 Le 02/11/2011, à 17:46

ElNix

Re : [Résolu][Bash]Ouvrir un nouveau terminal et y executer une application

Merci pour la réponse rapide ! 

Par contre, malgrés que les applications aient des éléments bloquants, les terminaux s'ouvrent et se ferment directement.

Comment pourrais-je faire pour que les terminaux restent ?

EDIT : J'ai un problème qui fait que les applications ne sont plus bloquantes, j'imagine que ça fonctionnera mieux après.

EDIT 2 : Je ne trouve pas. En gros mon script fait :

#!/bin/bash

cd Serveur1/
gnome-terminal -e java Serveur1 param1 &

gnome-terminal -e ../Serveur2/bin/Main ../Serveur2/fichier.conf & 


cd ../Client
for i in {1..5}
do
   gnome-terminal -e java Client param1 param2 param3 &
done

J'ai mit les cd car sinon les lignes type java Serveur1/Serveur1 param1 ne fonctionnaient pas.

Mais là, les lignes prises individuellement (même avec les &) fonctionnent tant que je ne rajoute pas les gnome-y=terminal -e.

Auriez vous une idée de solution ?

Dernière modification par ElNix (Le 02/11/2011, à 18:26)

Hors ligne

#4 Le 02/11/2011, à 18:19

pingouinux

Re : [Résolu][Bash]Ouvrir un nouveau terminal et y executer une application

Bonjour,

xterm -hold -e "commande arg1 arg2" &

Hors ligne

#5 Le 02/11/2011, à 18:28

Bousky

Re : [Résolu][Bash]Ouvrir un nouveau terminal et y executer une application

Pour que les arguments soient pris en compte, il faut que la commande soit entre guillemets ou utiliser « -x » à la place de « -e » :

gnome-terminal -e "application1 arg1 arg2" &
gnome-terminal -x application2 arg1 arg2 &

Linux qui plante complètement ? Plus rien ne répond ? On peut toujours le redémarrer proprement :
Alt + SysRq + REISUB (Retourne En Islande Sur Un Bateau !)

Hors ligne

#6 Le 05/11/2011, à 18:15

ElNix

Re : [Résolu][Bash]Ouvrir un nouveau terminal et y executer une application

Merci pour vos réponses.

J'ai essayé vos solutions et avec xterm - hold -e et les guillemets ça fonctionne bien !

Par contre je ne sais pourquoi mais ça ne fonctionne pas avec les gnome-terminal même en mettant -x ou les guillemets.

Sur les 7 fenêtres une seule reste ouverte et n'affiche rien alors que normalement toutes devraient afficher au moins un message disant que ça s'est initialisé.

Hors ligne

#7 Le 06/11/2011, à 09:59

credenhill

Re : [Résolu][Bash]Ouvrir un nouveau terminal et y executer une application

hello

gnome-terminal --maximize --tab -e 'bash -c "cal 2012;$SHELL"' --tab -e 'bash -c "cal 2013;$SHELL"'

Hors ligne

#8 Le 26/07/2014, à 14:11

smike2809

Re : [Résolu][Bash]Ouvrir un nouveau terminal et y executer une application

bonjour,
dans mon script il y a :

gnome-terminal -e ls

Le problème c'est que la fenêtre se referme tout de suite et je n'ai pas le temps de voir ce que contient le dossier. Comment faire pour afficher le terminal et éviter qu'il se ferme?
merci

Hors ligne

#9 Le 26/07/2014, à 14:22

pingouinux

Re : [Résolu][Bash]Ouvrir un nouveau terminal et y executer une application

Bonjour,
Voici une méthode

gnome-terminal -e 'bash -c "ls;read"'

et cliquer dans le terminal pour le fermer.

Hors ligne

#10 Le 26/07/2014, à 15:51

smike2809

Re : [Résolu][Bash]Ouvrir un nouveau terminal et y executer une application

merci pingouinux, ça fonctionne

J'ai lu le manuel de gnome-terminal mais je n'arrive pas bien a comprendre la différence entre ces deux paramètres;

-e, --command=STRING
                 Execute the argument to this option inside the terminal.

       -x, --execute
                 Execute the remainder of the command line inside  the  termi‐
                 nal.

Si j'ai bien compris la commande gnome-terminal est faite pour exécuter des scripts. C'est ce qu'on fait en quelque sorte avec la commande bash -c ?

Donc si je veux ajouter encore quelques commandes je doit les séparer par un ";" ?

Hors ligne

#11 Le 26/07/2014, à 16:08

pingouinux

Re : [Résolu][Bash]Ouvrir un nouveau terminal et y executer une application

Je n'ai pas compris à quoi peut servir l'option -x.

Donc si je veux ajouter encore quelques commandes je doit les séparer par un ";" ?

Oui

Hors ligne

#12 Le 27/07/2014, à 16:15

smike2809

Re : [Résolu][Bash]Ouvrir un nouveau terminal et y executer une application

Bonjour,
Lorsque je veux afficher la variable dans un nouveau terminal ça ne fonctionne pas. Comment faire pour qu'une variable puisse s'utiliser dans un autre terminal?
Exemple du code

#!/bin/bash
echo 'dites la commande'
read commande
gnome-terminal -e 'bash -c "pwd;echo $commande;read"'
gnome-terminal -e 'bash -c "ls;read"'

merci

Hors ligne

#13 Le 27/07/2014, à 17:54

pingouinux

Re : [Résolu][Bash]Ouvrir un nouveau terminal et y executer une application

Tu peux essayer ceci :

#!/bin/bash

read -p "Tapez la commande : " commande
echo "$commande" >/tmp/ma_commande

# Pour voir la commande
gnome-terminal -e 'bash -c "cat /tmp/ma_commande;read"'

# Pour exécuter la commande
gnome-terminal -e 'bash -c ". /tmp/ma_commande;read"'

rm /tmp/ma_commande

Hors ligne