Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[Q] Lancement shellscript par double-clic

57 réponses
Avatar
laurent.c
Bonjour,

J'ai écris un script shell (test.sh), que j'exécute sans pb dans le
Terminal (chmod 744, puis ./test.sh). Est-il possible de lancer ce
script par un simple double-clic sur ce fichier, dans la GUI OS X
(10.1.5) ?
De la même façon (attention oreilles sensibles) que sur un PC on peut
double-cliquer sur un test.bat, ce qui lance l'interpréteur de commande
et exécute le .bat.

Merci.

Laurent.

10 réponses

1 2 3 4 5
Avatar
Patrick Stadelmann
In article <1g7jrqt.bxc5d31r9bma6N%,
(Laurent C) wrote:

J'ai écris un script shell (test.sh), que j'exécute sans pb dans le
Terminal (chmod 744, puis ./test.sh). Est-il possible de lancer ce
script par un simple double-clic sur ce fichier, dans la GUI OS X
(10.1.5) ?


Oui, il faut y ajouter l'extension .command et le rendre exécutable (ce
que tu as déjà fait).

Patrick
--
Patrick Stadelmann

Avatar
laurent.c
Patrick Stadelmann wrote:

In article <1g7jrqt.bxc5d31r9bma6N%,
(Laurent C) wrote:

J'ai écris un script shell (test.sh), que j'exécute sans pb dans le
Terminal (chmod 744, puis ./test.sh). Est-il possible de lancer ce
script par un simple double-clic sur ce fichier, dans la GUI OS X
(10.1.5) ?


Oui, il faut y ajouter l'extension .command et le rendre exécutable (ce
que tu as déjà fait).

Patrick


Quelle simplicité ! Merci !
Question subsidiaire (j'abuse) : en double-cliquant, OS X lance le
terminal, exécute le script + exit, mais ne quitte pas le Terminal.
Est-il possible de forcer le Terminal to Quit ?

Merci.


Avatar
Patrick Stadelmann
In article <1g7jtud.15d2vsn1rx9o00N%,
(Laurent C) wrote:

Quelle simplicité ! Merci !
Question subsidiaire (j'abuse) : en double-cliquant, OS X lance le
terminal, exécute le script + exit, mais ne quitte pas le Terminal.
Est-il possible de forcer le Terminal to Quit ?


Si tu veux juster fermer la fenêtre, il suffit d'ajouter "exit" à la fin
du script. Pour fermer l'application, utiliser :

osascript -e 'tell application "Terminal" to quit' &

Patrick
--
Patrick Stadelmann

Avatar
laurent.c
Patrick Stadelmann wrote:

In article <1g7jtud.15d2vsn1rx9o00N%,
(Laurent C) wrote:

Quelle simplicité ! Merci !
Question subsidiaire (j'abuse) : en double-cliquant, OS X lance le
terminal, exécute le script + exit, mais ne quitte pas le Terminal.
Est-il possible de forcer le Terminal to Quit ?


Si tu veux juster fermer la fenêtre, il suffit d'ajouter "exit" à la fin
du script. Pour fermer l'application, utiliser :

osascript -e 'tell application "Terminal" to quit' &

Patrick


Impec. Merci !

Laurent.


Avatar
Nicolas.MICHEL
Laurent C wrote:

Quelle simplicité ! Merci !
Question subsidiaire (j'abuse) : en double-cliquant, OS X lance le
terminal, exécute le script + exit, mais ne quitte pas le Terminal.
Est-il possible de forcer le Terminal to Quit ?


killall Terminal
en fin de script.
--
S'il n'y a pas de solutions, c'est qu'il n'y a pas de problèmes
iChat/AIM : michelnicolas

Avatar
Saïd
Nicolas MICHEL :
Laurent C wrote:

Quelle simplicité ! Merci !
Question subsidiaire (j'abuse) : en double-cliquant, OS X lance le
terminal, exécute le script + exit, mais ne quitte pas le Terminal.
Est-il possible de forcer le Terminal to Quit ?


killall Terminal
en fin de script.


C'est pas sympa pout les autres fenetres de Terminal. Il y a une option de
config de Terminal qui permet de fermer une fenetre quand le programme qui
s'y execute se termine.


--
Saïd.


Avatar
laurent.c
Nicolas MICHEL wrote:

killall Terminal
en fin de script.


Marche pas... . no entry for killall in the manual....

Au fait, quel shell utiliser ? osascript marche avec /bin/sh mais ni csh
ni tcsh. Or le shell par defaut est tcsh (echo $SHELL)...

Merci.

Avatar
laurent.c
Saïd wrote:


killall Terminal
en fin de script.


C'est pas sympa pout les autres fenetres de Terminal. Il y a une option de
config de Terminal qui permet de fermer une fenetre quand le programme qui
s'y execute se termine.


Oui, ça marche quand tu fait exit en interactif, mais pas dans un script
?!?


Avatar
Nicolas.MICHEL
Laurent C wrote:

Nicolas MICHEL wrote:

killall Terminal
en fin de script.


Marche pas... . no entry for killall in the manual....


%> which killall <1
/usr/bin/killall

Au fait, quel shell utiliser ?


les scripts, ça se fait avec /bin/sh bien sûr.
le reste, c'est pas standard.

osascript marche avec /bin/sh mais ni csh
ni tcsh. Or le shell par defaut est tcsh (echo $SHELL)...


%> which osascript
/usr/bin/osascript

Tu as un problème de path, je suppose. /usr/bin ne doit pas y être.
que donne un "echo $PATH" ?
met les chemin complets des commandes dans tes scripts, ou spécifies le
path, ça ira mieux.

Pour répondre à Saïd, effectivement killall fait un "kill -9" par défaut
alors que osascript fait un "quit" genre commande finder. Tu peux aussi
faire un killall -3.
--
S'il n'y a pas de solutions, c'est qu'il n'y a pas de problèmes
iChat/AIM : michelnicolas


Avatar
laurent.c
Nicolas MICHEL wrote:

%> which killall
/usr/bin/killall

Donne rien chez moi. Because 0S X 10.1.5 ?


les scripts, ça se fait avec /bin/sh bien sûr.
le reste, c'est pas standard.

Ah bon ? Quand j'étais jeune j'utilisais exclusivement csh...


%> which osascript
/usr/bin/osascript

OK.


Tu as un problème de path, je suppose. /usr/bin ne doit pas y être.
que donne un "echo $PATH" ?


% echo $PATH
/Users/laurentc/bin/powerpc-apple-darwin:/Users/laurentc/bin:/usr/local/
bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin

Y a pourtant bien /usr/bin...

Pour répondre à Saïd, effectivement killall fait un "kill -9" par défaut
alors que osascript fait un "quit" genre commande finder. Tu peux aussi
faire un killall -3.


Mais : "kill: Arguments should be jobs or process id's." Ca marche pas
avec le nom du programme !

Merci pour tes réponses.

Laurent

1 2 3 4 5