Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

Attention, une faille de sécurité dans bash a récemment été rapportée, il est recommandé de mettre à jour son système (plus de détails) *** mise à jour 12/10/2014 ***

#1 Le 02/11/2011, à 16: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, à 17:16)

Hors ligne

#2 Le 02/11/2011, à 16: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, à 16:24)

Hors ligne

#3 Le 02/11/2011, à 16: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, à 17:26)

Hors ligne

#4 Le 02/11/2011, à 17: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, à 17: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, à 17: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, à 08: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, à 13: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, à 13: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, à 14: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, à 15: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, à 15: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, à 16: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

Haut de page ↑