Execution Shell script dans fenetre xterm

Résolu
nonoEW Messages postés 28 Date d'inscription   Statut Membre Dernière intervention   -  
nonoEW Messages postés 28 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai une petite question sur une routine de programmation shell :
j'ai un programme du style

function1()
{
blabla
}

function2()
{
blibli
}

...
corps de mon shell script
...
exit

ça fonctionne très bien mais je voudrais qu'à l'éxécution de mon programme, les commandes soient exécutées dans une fenetre xterm.
J'ai donc fait un programme spécial pour intégrer cette fonctionalité:
#! /bin/sh
# This script opens a terminal and execute trace.sh
xterm -T "Trace program -- Press Control-C to quit" -bg "black" -fg "white" -e "./trace.sh ;
echo -e \"\nPress enter to exit\"
read
exit"

ça marche d'accord mais est il possible de faire cela dans le seul et même programme ?

merci
nono
A voir également:

9 réponses

dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
tu peux mettre ton script entre les " après le -e
1
nonoEW Messages postés 28 Date d'inscription   Statut Membre Dernière intervention   3
 
Bjr,

J'y ai bien pensé mais le problème c'est que c'est un peu galère de faire ça car il faut protéger tous les caractères spéciaux par des \ (les guillemets par exemple).

Sinon, j'ai essayer de mettre le corps de une fonction main() par exemple et de mettre :

xterm -T "Trace program -- Press Control-C to quit" -bg "black" -fg "white" -e "main ;
echo -e \"\nPress enter to exit\"
read
exit"

Mais ça marche pô, ce n'est pas possible de faire comme ça ?

Nono
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
exit ne doit pas être dans le xterm

if [ $# -eq 0 ] ; then xterm -e "./trace.sh xxx ; read" ; exit ; fi
1
nonoEW Messages postés 28 Date d'inscription   Statut Membre Dernière intervention   3
 
Merci beaucoup, pour ton aide!

Alors je récapitule le fonctionnement, au début on exécute trace.sh sans paramètre, ce qui lance la fenêtre xterm avec trace.sh lancer avec le paramètre bidon "xxx".
Trace.sh étant lancé avec un paramètre, le code étant placé dans le else, l'éxécution ne se fait qu'une seule fois conformément à ce que je voulais.

C nickel tout ça
Merci !!
Nono
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637 > nonoEW Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
tu as tout compris.
avec le exit comme indiqué au message 12, plus besoin du else
0
nonoEW Messages postés 28 Date d'inscription   Statut Membre Dernière intervention   3 > dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention  
 
Encore mieux, merci beaucoup, je pense que je peux clore la discussion
@+
Nono
0
nonoEW Messages postés 28 Date d'inscription   Statut Membre Dernière intervention   3
 
Bonjour,

Est ce que quelqu'un à un avis sur le sujet ?

Merci
Nono
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
ou dans trace.sh

if [ $# -eq 0 ] ; then xterm -e "./trace.sh xxx"

le reste du script

et exécuter
./trace.sh
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nonoEW Messages postés 28 Date d'inscription   Statut Membre Dernière intervention   3
 
Peux tu être un peu plus clair stp car je n'arrive pas à le faire fonctionner.
Le fi se situe où ?
que signifie les xxx après le ./trace ?

Nono
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
oui j'ai oublié le fi
if [ $# -eq 0 ] ; then xterm -e "./trace.sh xxx" ; fi

le script trace.sh appellé sans paramètre démarre un xterm
qui démarre le script avec un paramètre qui va donc ne pas exécuter le xterm mais le reste du script
0
nonoEW Messages postés 28 Date d'inscription   Statut Membre Dernière intervention   3
 
Oui mais je veux que le reste de mon script s'exécute dans le xterm lancé.
Et là, ce n'est pas le cas, la fenêtre xterm se ferme au début de l'exécution de mon script

Nono
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
et avec
if [ $# -eq 0 ] ; then xterm -e "./trace.sh xxx ; $SHELL" ; fi
0
nonoEW Messages postés 28 Date d'inscription   Statut Membre Dernière intervention   3
 
oui, mais le $SHELL me remet un prompt dans ma fenêtre xterm.
J'ai mis à la place:
if [ $# -eq 0 ] ; then xterm -e "./trace.sh xxx ; read ; exit" ; fi
La ça marche mais une fois mon programme terminé, il recommence une deuxième fois ! Je ne comprend pas pourquoi ? T'as une idée

PS: Tu ne ma pas répondu au sujet des xxx, ça sert à quoi ???

Nono
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637 > nonoEW Messages postés 28 Date d'inscription   Statut Membre Dernière intervention  
 
le xxx est juste un paramètre bidon qui permet de faire le test if [ $# -eq 0 ]
sans xxx $# = 0, avec xxx $# =1
0
nonoEW Messages postés 28 Date d'inscription   Statut Membre Dernière intervention   3
 
en mettant le code dans le else, je n'ai plus le problème mais j'ai qd même du mal à capter pourquoi
Nono
0