#1 Le 15/06/2007, à 08:00
- cushy007
[RESOLU] Lancer un script dans un terminal depuis un lanceur graphique
Bonjour,
Aucune réponse sur Google et sur Ubuntu.fr:
Je souhaite créer sur mon bureau, un lanceur qui lance un script dans un terminal (afin d'interagir avec l'utilisateur avec la fonction read)
Voici mon script: (en réalité il est beaucoup plus long, mais c'est pour l'exemple)
echo "entrez une valeur:"
read valeur
echo"$valeur"
exit 0
J'ai créé un lanceur contenant: gnome-terminal -e mon_script
Lorsque j'utilise ce lanceur, un terminal s'ouvre et se referme aussitôt alors que mon script est censé poser une question à l'utilisateur et attendre sa réponse
j'ai créé d'autres lanceurs pour tester:
gnome-terminal -e ls : Le terminal se referme aussitôt et on a pas le temps de lire le retour de la commande (c'est normal)
gnome-terminal -e top : Le terminal ne se se referme pas et attend un appuis sur q pour quitter (c'est normal)
gnome-terminal -e mon_script : Le terminal se referme aussitôt et on a pas le temps d'entrer la valeur demandée par read (ça doit être normal)
gnome-terminal -e "sh mon_script" : Tout se passe normalement, on entre la valeur, elle est affichée et on quitte (ça à l'air d'être la solution)
MAIS, CAR IL Y A UN MAIS ...
Dans mon script original, j'appelle un script de librairie personnelle par la fonction "source" (ou plutôt ".") ...
. ma_librairie
echo "entrez une valeur:"
read valeur
echo"$valeur"
exit 0
... et là, ça replante ...
J'ai essayé en recopiant le code de ma librairie dans le script lui même et ça fonctionne.
Il semble donc que ce soit l'appel à la fonction "source (ou ".") qui pose problème
J'ai essayé en changeant les droits en éxécution des librairies et en leur mettant une en-tête "#!/bin/sh/" mais rien n'y fait
Une idée ???
Merci
Dernière modification par cushy007 (Le 16/06/2007, à 11:24)
Hors ligne
#2 Le 15/06/2007, à 11:13
- krusaf
Re : [RESOLU] Lancer un script dans un terminal depuis un lanceur graphique
. ma_librairie => ma_librairie doit etre dans un des dossiers du PATH, est-ce le cas ?
Pour l'autre problème essaye plutôt :
while test "$valeur" == ""
do
echo "entrez une valeur:"
read valeur
done
echo"$valeur"
J'ai pas testé ... j'essairai ce soir si ça marche pas.
Hors ligne
#3 Le 15/06/2007, à 13:06
- cushy007
Re : [RESOLU] Lancer un script dans un terminal depuis un lanceur graphique
. ma_librairie est dans le même dossier que mon script qui est lui-même dans le PATH. D'ailleurs, mon script fonctionne parfaitement bien avec la librairie lorsque je l'exécute directement dans un terminal.
Le bout de code ne fonctionne pas, même en initialisant valeur="" au début
Merci quand même ...
Hors ligne
#4 Le 15/06/2007, à 14:46
- Freddy
Re : [RESOLU] Lancer un script dans un terminal depuis un lanceur graphique
Avec xterm, il y a l'option -hold, qui empêche le terminal de se refermer après l'exécution de la commande : «xterm -hold -x ls» ne se referme pas après l'exécution de «ls».
xfce4-terminal possède une option --hold ; je n'ai pas vu d'équivalent pour gnome-terminal.
There is no system but GNU, and Linux is one of its kernels.
Hors ligne
#5 Le 16/06/2007, à 11:24
- cushy007
Re : [RESOLU] Lancer un script dans un terminal depuis un lanceur graphique
Merci, ça fonctionne avec xterm --hold ... Enfin .. non. J'ai des problèmes de PATH.
En fait le problème venait du fait que j'utilisais "#!/bin/sh" en en-tête et que "/bin/sh" pointe non pas vers bash, mais vers dash: http://forum.ubuntu-fr.org/viewtopic.php?id=128368
Dernière modification par cushy007 (Le 20/06/2007, à 12:58)
Hors ligne