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 -
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
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:
- Bash xterm
- Bingo bash free - Télécharger - Divers Jeux
- Bash list ✓ - Forum Shell
- Bash pause ✓ - Forum Shell
- Bash permission non accordée - Forum Shell
- Bash addition - Forum Programmation
9 réponses
exit ne doit pas être dans le xterm
if [ $# -eq 0 ] ; then xterm -e "./trace.sh xxx ; read" ; exit ; fi
if [ $# -eq 0 ] ; then xterm -e "./trace.sh xxx ; read" ; exit ; fi
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
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
ou dans trace.sh
if [ $# -eq 0 ] ; then xterm -e "./trace.sh xxx"
le reste du script
et exécuter
./trace.sh
if [ $# -eq 0 ] ; then xterm -e "./trace.sh xxx"
le reste du script
et exécuter
./trace.sh
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
Le fi se situe où ?
que signifie les xxx après le ./trace ?
Nono
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
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
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
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
et avec
if [ $# -eq 0 ] ; then xterm -e "./trace.sh xxx ; $SHELL" ; fi
if [ $# -eq 0 ] ; then xterm -e "./trace.sh xxx ; $SHELL" ; fi
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
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
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