Commande shell pour ouvrir un terminal qui lance une commande

Résolu/Fermé
Julie - 15 oct. 2012 à 19:35
 Julie - 16 oct. 2012 à 13:55
Bonsoir,

Je cherche à coder un petit script shell qui, lorsqu'on le lance, ouvrira plusieurs nouveaux terminaux qui devront lancer chacun une commande pour afficher des données utiles à mon travail (d'où l'intérêt de conserver le terminal "parent" propre). Cependant, je ne sais pas quelle option utiliser avec xterm pour donner une commande au terminal fraîchement ouvert.
Avez-vous une idée ? Cela est-il d'ailleurs possible ? Je vous remercie d'avance pour votre temps, je ne fais que débuter pour ce qui est du shell.

A voir également:

2 réponses

Salut,

man xterm

-e programme [ arguments ... ]
spécifie le programme (et ses arguments de ligne de commande) qui doit être lancé dans la fenêtre xterm. Cette option positionne aussi le titre de la fenêtre et le nom d'icône au nom de base du programme en cours d'exécution si ni -T ni -n ne sont spécifiés sur la ligne de commande. Ce doit être la dernière option de la ligne de commande xterm.

l'option -e suivie du nom de la commande à exécuter lancera cette commande dans la nouvelle fenêtre.

Tu peux faire quelque chose du genre :

#!/bin/sh
xterm -e "commande 1" &
xterm -e "commande 2" &
xterm -e "commande 3" &
7
Merci beaucoup, c'est exactement ce qu'il me fallait ! J'ai dû survoler cette option en lisant le man sans la comprendre, merci de l'avoir clarifier.

Edit : Après quelques essais, je me rends compte que le terminal ouvert ne sert qu'à executer un programme, puis se ferme. Dans mon cas, il faudrait qu'il reste ouvert, puisque l'une des commandes à faire est par exemple :

cat /u/shared/$1/public/* | grep -n ERREUR

J'ai donc besoin d'avoir un retour, ce qui n'est pas le cas ici puisque le terminal se ferme une fois la commande executée.
0
dubcek
Messages postés
18515
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
26 juin 2022
5 547
16 oct. 2012 à 08:09
hello
pour laisser le xterm ouvert:
xterm -e "commande; $SHELL" &
3
Merci, à présent tout fonctionne comme je le souhaitais !
Problème résolu.
0