Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 hmm

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 smile (c'est normal)

gnome-terminal -e top : Le terminal ne se se referme pas et attend un appuis sur q pour quitter smile (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 neutral (ç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 smile (ç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 smile

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 sad

Merci quand même ... smile

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 cool ... 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