[Q] Lancement d'un shell-script par double-clic avec Terminal ouvert

Le
blanc
Bonjour à tous,

On peut lancer l'exécution d'un shell-script en double-cliquant sur
l'icône du fichier (pourvu que, par exemple, le nom de ce fichier se
termine par .command ou .term).

J'ai cependant remarqué que dans certaines circonstances, si le Terminal
est déjà ouvert, le lancement par cette méthode ne fonctionne pas. On
est alors obligé de quitter le Terminal et de recommencer.

Quelqu'un sait-il pourquoi, et comment y remédier ?

Une autre question à ce sujet : existe-t-il un moyen de lancer un tel
script, toujours par double-clic, sans que la fenêtre du Terminal ne
soit visible ?

Merci d'avance pour vos réponses que j'attends avec intérêt.

JPaul.



--
/==/==\- Jean-Paul BLANC
/ /--/--//\ quelque-part (somewhere)
|/| L |\ en (in)
/|| = |||\ FRANCE
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Patrick Stadelmann
Le #2251691
In article (JPaul) wrote:

Une autre question à ce sujet : existe-t-il un moyen de lancer un tel
script, toujours par double-clic, sans que la fenêtre du Terminal ne
soit visible ?


Passer par AppleScript et "do shell script" :
http://developer.apple.com/technotes/tn2002/tn2065.html

Patrick
--
Patrick Stadelmann
Anonyme
Le #2251481
JPaul
J'ai cependant remarqué que dans certaines circonstances, si le Terminal
est déjà ouvert, le lancement par cette méthode ne fonctionne pas. On
est alors obligé de quitter le Terminal et de recommencer.

Quelqu'un sait-il pourquoi, et comment y remédier ?


Je n'ai jamais eu ça et je n'en ai entendu parlé que par toi... :-/

Une autre question à ce sujet : existe-t-il un moyen de lancer un tel
script, toujours par double-clic, sans que la fenêtre du Terminal ne
soit visible ?


Une solution parmis d'autres, le lancer depuis un AppleScript par un
do shell script "chemin/vers/le/script"

Si tu ne veux pas avoir plusieurs fichiers, tu peux alors faire un
applescript sous forme de paquet d'application et mettre ton script
dedans.

--
Anonyme ( jayce <@> mosx.net )
********* MosX.net (avec un put§@#* de problème DNS sur le domaine mosx.net)

blanc
Le #2251351
Anonyme
JPaul
J'ai cependant remarqué que dans certaines circonstances, si le Terminal
est déjà ouvert, le lancement par cette méthode ne fonctionne pas. On
est alors obligé de quitter le Terminal et de recommencer.

Quelqu'un sait-il pourquoi, et comment y remédier ?


Je n'ai jamais eu ça et je n'en ai entendu parlé que par toi... :-/


Alors essaie ceci :
1) Lance un script quelconque (par double-clic) qui ouvre une fenêtre du
T mais ne la referme pas.
2) Ferme la fenêtre à la main
3) Lance un autre script (ou le même), toujours par double-clic

Chez moi aucune fenêtre ne s'ouvre pour exécuter le deuxième script.
Je ne sais si c'est ainsi uniquement chez moi, ou si c'est du
particulièrement aux scripts que j'écris. Si tu n'arrives pas à
reproduire le phénomène, je t'enverrai un script qui le fait chez moi.



Une autre question à ce sujet : existe-t-il un moyen de lancer un tel
script, toujours par double-clic, sans que la fenêtre du Terminal ne
soit visible ?


Une solution parmis d'autres, le lancer depuis un AppleScript par un
do shell script "chemin/vers/le/script"

Si tu ne veux pas avoir plusieurs fichiers, tu peux alors faire un
applescript sous forme de paquet d'application et mettre ton script
dedans.


Merci à toi et à Patrick pour vos réponses.

JPaul.
--
/==/==\- Jean-Paul BLANC
/ /--/--//\ quelque-part (somewhere)
|/| L |\ en (in)
/|| = |||\ FRANCE


Anonyme
Le #2251251
JPaul
Je n'ai jamais eu ça et je n'en ai entendu parlé que par toi... :-/


Alors essaie ceci :
1) Lance un script quelconque (par double-clic) qui ouvre une fenêtre du
T mais ne la referme pas.
2) Ferme la fenêtre à la main
3) Lance un autre script (ou le même), toujours par double-clic

Chez moi aucune fenêtre ne s'ouvre pour exécuter le deuxième script.
Je ne sais si c'est ainsi uniquement chez moi, ou si c'est du
particulièrement aux scripts que j'écris. Si tu n'arrives pas à
reproduire le phénomène, je t'enverrai un script qui le fait chez moi.


Aucun problème chez moi...

Envoie moi un de tes scripts mais pas sur mon adresse mosx, sur
jayce.piel chez gmail.com

Mais je pencherais plutôt pour une confg particulière du terminal...

--
Anonyme ( jayce <@> mosx.net )
********* MosX.net (avec un put§@#* de problème DNS sur le domaine mosx.net)


Nicolas.MICHEL
Le #2251121
JPaul
Alors essaie ceci :
1) Lance un script quelconque (par double-clic) qui ouvre une fenêtre du
T mais ne la referme pas.
2) Ferme la fenêtre à la main
3) Lance un autre script (ou le même), toujours par double-clic


Testé, sans l'ombre d'un problème, ceci :

~> echo '#!/bin/bash' > test.command
~> echo 'echo "toto"' >> test.command
~> chmod +x test.command
~> cp test.command test2.command

Je referme la fenêtre, doubleclic test.command, ça s'ouvre, je referme,
doubliclic test2.command, ça s'ouvre aussi.

Comme le dit Jayce, tu devrais tenter de trasher tes prefs de terminal.
--
Nicolas

blanc
Le #2251061
Merci à toi, ainsi qu'à Jayce pour vos réponses.


Nicolas MICHEL
Testé, sans l'ombre d'un problème, ceci :

~> echo '#!/bin/bash' > test.command
~> echo 'echo "toto"' >> test.command
~> chmod +x test.command
~> cp test.command test2.command

Je referme la fenêtre, doubleclic test.command, ça s'ouvre, je referme,
doubliclic test2.command, ça s'ouvre aussi.


Je viens de tester. Aucun pb non plus. D'où j'en déduis que ça ne le
fait pas avec n'importe quel script, comme je l'avais dit un peu vite...
;-)

...

J'ai donc repris le dernier script et ai entrepris de cerner le pb par
"dichotomie". Je veux dire en éliminant à chaque fois la moitié des
lignes...

Et j'ai trouvé... la ligne fautive :

osascript -e 'tell application "Terminal" to activate'

Testez-la chez vous, en la précédent bien sûr d'un #!/bin/bash
(bien que ce ne soit pas vraiment utile), et vous devriez vous aussi
observer le même défaut (même pas besoin d'ailleurs de refermer la
fenêtre du Terminal)

Ai-je fait une erreur dans la dite ligne ?
Faut-il rajouter un "end tell" ?

JPaul.

--
/==/==\- Jean-Paul BLANC
/ /--/--//\ quelque-part (somewhere)
|/| L |\ en (in)
/|| = |||\ FRANCE

Patrick Stadelmann
Le #2251041
In article (JPaul) wrote:

J'ai donc repris le dernier script et ai entrepris de cerner le pb par
"dichotomie". Je veux dire en éliminant à chaque fois la moitié des
lignes...

Et j'ai trouvé... la ligne fautive :

osascript -e 'tell application "Terminal" to activate'


Il semblerait qu'un bug report ait été soumis en... 2003 !

<http://use.perl.org/comments.pl?sid900&op=&threshold=0&commentsort=0&
mode=thread&pid=0>

Patrick
--
Patrick Stadelmann
blanc
Le #2254081
Patrick Stadelmann
Il semblerait qu'un bug report ait été soumis en... 2003 !

<http://use.perl.org/comments.pl?sid900&op=&threshold=0&commentsort=0&
mode=thread&pid=0>


Ben voilà, c'est bien ça :-)

Merci encore.

JPaul.
--
/==/==\- Jean-Paul BLANC
/ /--/--//\ quelque-part (somewhere)
|/| L |\ en (in)
/|| = |||\ FRANCE

bgrandin
Le #2256581
JPaul
Quelqu'un sait-il pourquoi, et comment y remédier ?

Une autre question à ce sujet : existe-t-il un moyen de lancer un tel
script, toujours par double-clic, sans que la fenêtre du Terminal ne
soit visible ?


Je ne sais pas si ça peut t'aider, mais il est possible de mettre un
.command dans le Dock, sinon.

--
http://www.bdzone.com Le portail BD

Publicité
Poster une réponse
Anonyme