Execution Shell script dans fenetre xterm

Résolu/Fermé
nonoEW Messages postés 28 Date d'inscription samedi 2 août 2008 Statut Membre Dernière intervention 18 avril 2011 - 2 déc. 2008 à 17:24
nonoEW Messages postés 28 Date d'inscription samedi 2 août 2008 Statut Membre Dernière intervention 18 avril 2011 - 5 déc. 2008 à 10:54
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

9 réponses

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
4 déc. 2008 à 14:56
tu peux mettre ton script entre les " après le -e
1
nonoEW Messages postés 28 Date d'inscription samedi 2 août 2008 Statut Membre Dernière intervention 18 avril 2011 3
4 déc. 2008 à 15:29
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 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
5 déc. 2008 à 10:13
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 samedi 2 août 2008 Statut Membre Dernière intervention 18 avril 2011 3
5 déc. 2008 à 10:27
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 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615 > nonoEW Messages postés 28 Date d'inscription samedi 2 août 2008 Statut Membre Dernière intervention 18 avril 2011
5 déc. 2008 à 10:31
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 samedi 2 août 2008 Statut Membre Dernière intervention 18 avril 2011 3 > dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024
5 déc. 2008 à 10:54
Encore mieux, merci beaucoup, je pense que je peux clore la discussion
@+
Nono
0
nonoEW Messages postés 28 Date d'inscription samedi 2 août 2008 Statut Membre Dernière intervention 18 avril 2011 3
4 déc. 2008 à 14:39
Bonjour,

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

Merci
Nono
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
4 déc. 2008 à 16:05
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 samedi 2 août 2008 Statut Membre Dernière intervention 18 avril 2011 3
4 déc. 2008 à 16:44
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 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
4 déc. 2008 à 16:48
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 samedi 2 août 2008 Statut Membre Dernière intervention 18 avril 2011 3
4 déc. 2008 à 17:17
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 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
4 déc. 2008 à 17:20
et avec
if [ $# -eq 0 ] ; then xterm -e "./trace.sh xxx ; $SHELL" ; fi
0
nonoEW Messages postés 28 Date d'inscription samedi 2 août 2008 Statut Membre Dernière intervention 18 avril 2011 3
4 déc. 2008 à 17:52
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 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615 > nonoEW Messages postés 28 Date d'inscription samedi 2 août 2008 Statut Membre Dernière intervention 18 avril 2011
5 déc. 2008 à 09:49
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 samedi 2 août 2008 Statut Membre Dernière intervention 18 avril 2011 3
4 déc. 2008 à 18:17
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