[INFO + 2Q] Fermeture fenêtre Terminal en fin de shell-script
12 réponses
blanc
Bonjour à tous,
Peut-être le connaissez-vous déjà, mais comme je l'ai perso cherché
plusieurs fois en vain, je pense qu'il peut être utile à plusieurs.
Voici donc le moyen que j'ai trouvé de fermer la fenêtre du Terminal (et
de quitter celui-ci si c'est la seule fenêtre ouverte) en fin
d'exécution d'un shell-script que l'on aurait lancé par un double-clic
(fichier xxx.command).
Bien sûr, il existe la solution de créer à partir du T un fichier
xxx.term (par Fichier --> Enregistrer sous) après avoir coché la case
"fermeture en fin de script" et de modifier ce fichier par éditeur afin
qu'il lance l'exécution du script en question :
et ceci aussi bien avec osascript que dans l'Editeur de Script ?
2) Dans certaines circonstances, si le T est déjà ouvert, le lancement
par double-clic ne fonctionne pas (et ceci aussi bien avec un .term
qu'un .command). Quelqu'un sait-il pourquoi, et comment y remédier ?
JPaul.
--
/==/==\\-\ Jean-Paul BLANC
/ /--/--//\\ quelque-part (somewhere)
|/| L |\\\ en (in)
\/|| = |||\\\ FRANCE
Peut-être le connaissez-vous déjà, mais comme je l'ai perso cherché plusieurs fois en vain, je pense qu'il peut être utile à plusieurs.
Voici donc le moyen que j'ai trouvé de fermer la fenêtre du Terminal (et de quitter celui-ci si c'est la seule fenêtre ouverte) en fin d'exécution d'un shell-script que l'on aurait lancé par un double-clic (fichier xxx.command).
Bien sûr, il existe la solution de créer à partir du T un fichier xxx.term (par Fichier --> Enregistrer sous) après avoir coché la case "fermeture en fin de script" et de modifier ce fichier par éditeur afin qu'il lance l'exécution du script en question :
hl=fr&>
Mais cette solution est assez complexe et nécessite d'avoir deux fichiers (le .term et le .command) pour chaque script, et je voulais éviter cela.
La solution que je propose consiste à rajouter les lignes suivantes (appel à Applescript) à la fin du script ou avant un éventuel exit :
osascript -e 'tell application "Terminal" set nb to count of windows if nb > 1 then close first window if nb <= 1 then quit end tell' &
Supprimez la quatrième ligne (et le test nb>1) si vous ne souhaitez pas quitter le T.
Deux questions maintenant :
1) Pourquoi ne puis-je pas mettre de else dans le "if-statement", contrairement à ce qui est indiqué ici :
riptLangGuide/index.html>,
et ceci aussi bien avec osascript que dans l'Editeur de Script ?
2) Dans certaines circonstances, si le T est déjà ouvert, le lancement par double-clic ne fonctionne pas (et ceci aussi bien avec un .term qu'un .command). Quelqu'un sait-il pourquoi, et comment y remédier ?
JPaul.
-- /==/==- Jean-Paul BLANC / /--/--// quelque-part (somewhere) |/| L | en (in) /|| = ||| FRANCE
Bonjour, si tu veux que la fenêtre se ferme toute seule à la fin d'un script, va dans les préférences de Terminal. cliquer sur l’onglet Réglages en haut, puis sur l’onglet Shell dans l’onglet plus en bas. Choisir « fermer la fenêtre » dans Lorsque le shell quitte.
Le mardi 17 Avril 2007 à 17:32 par blanc :
Bonjour à tous,
Peut-être le connaissez-vous déjà, mais comme je l'ai perso
cherché
plusieurs fois en vain, je pense qu'il peut être utile à
plusieurs.
Voici donc le moyen que j'ai trouvé de fermer la fenêtre du
Terminal (et
de quitter celui-ci si c'est la seule fenêtre ouverte) en fin
d'exécution d'un shell-script que l'on aurait lancé par un
double-clic
(fichier xxx.command).
Bien sûr, il existe la solution de créer à partir du T un
fichier
xxx.term (par Fichier --> Enregistrer sous) après avoir coché
la case
"fermeture en fin de script" et de modifier ce fichier par
éditeur afin
qu'il lance l'exécution du script en question :
hl=fr&>
Mais cette solution est assez complexe et nécessite d'avoir deux
fichiers (le .term et le .command) pour chaque script, et je voulais
éviter cela.
La solution que je propose consiste à rajouter les lignes suivantes
(appel à Applescript) à la fin du script ou avant un
éventuel exit :
osascript -e 'tell application "Terminal"
set nb to count of windows
if nb > 1 then close first window
if nb <= 1 then quit
end tell' &
Supprimez la quatrième ligne (et le test nb>1) si vous ne souhaitez
pas
quitter le T.
Deux questions maintenant :
1) Pourquoi ne puis-je pas mettre de else dans le "if-statement",
contrairement à ce qui est indiqué ici :
riptLangGuide/index.html>,
et ceci aussi bien avec osascript que dans l'Editeur de Script ?
2) Dans certaines circonstances, si le T est déjà ouvert, le
lancement
par double-clic ne fonctionne pas (et ceci aussi bien avec un .term
qu'un .command). Quelqu'un sait-il pourquoi, et comment y remédier ?
JPaul.
--
/==/==\- Jean-Paul BLANC
/ /--/--//\ quelque-part (somewhere)
|/| L |\ en (in)
/|| = |||\ FRANCE
Bonjour,
si tu veux que la fenêtre se ferme toute seule à la fin d'un script, va dans les préférences de Terminal.
cliquer sur l’onglet Réglages en haut, puis sur l’onglet Shell dans l’onglet plus en bas. Choisir « fermer la fenêtre » dans Lorsque le shell quitte.
Peut-être le connaissez-vous déjà, mais comme je l'ai perso cherché plusieurs fois en vain, je pense qu'il peut être utile à plusieurs.
Voici donc le moyen que j'ai trouvé de fermer la fenêtre du Terminal (et de quitter celui-ci si c'est la seule fenêtre ouverte) en fin d'exécution d'un shell-script que l'on aurait lancé par un double-clic (fichier xxx.command).
Bien sûr, il existe la solution de créer à partir du T un fichier xxx.term (par Fichier --> Enregistrer sous) après avoir coché la case "fermeture en fin de script" et de modifier ce fichier par éditeur afin qu'il lance l'exécution du script en question :
hl=fr&>
Mais cette solution est assez complexe et nécessite d'avoir deux fichiers (le .term et le .command) pour chaque script, et je voulais éviter cela.
La solution que je propose consiste à rajouter les lignes suivantes (appel à Applescript) à la fin du script ou avant un éventuel exit :
osascript -e 'tell application "Terminal" set nb to count of windows if nb > 1 then close first window if nb <= 1 then quit end tell' &
Supprimez la quatrième ligne (et le test nb>1) si vous ne souhaitez pas quitter le T.
Deux questions maintenant :
1) Pourquoi ne puis-je pas mettre de else dans le "if-statement", contrairement à ce qui est indiqué ici :
riptLangGuide/index.html>,
et ceci aussi bien avec osascript que dans l'Editeur de Script ?
2) Dans certaines circonstances, si le T est déjà ouvert, le lancement par double-clic ne fonctionne pas (et ceci aussi bien avec un .term qu'un .command). Quelqu'un sait-il pourquoi, et comment y remédier ?
JPaul.
-- /==/==- Jean-Paul BLANC / /--/--// quelque-part (somewhere) |/| L | en (in) /|| = ||| FRANCE
Bonjour, si tu veux que la fenêtre se ferme toute seule à la fin d'un script, va dans les préférences de Terminal. cliquer sur l’onglet Réglages en haut, puis sur l’onglet Shell dans l’onglet plus en bas. Choisir « fermer la fenêtre » dans Lorsque le shell quitte.
jgsker
Le mardi 17 Avril 2007 à 17:32 par blanc :
Bonjour à tous,
Peut-être le connaissez-vous déjà, mais comme je l'ai perso cherché plusieurs fois en vain, je pense qu'il peut être utile à plusieurs.
Voici donc le moyen que j'ai trouvé de fermer la fenêtre du Terminal (et de quitter celui-ci si c'est la seule fenêtre ouverte) en fin d'exécution d'un shell-script que l'on aurait lancé par un double-clic (fichier xxx.command).
Bien sûr, il existe la solution de créer à partir du T un fichier xxx.term (par Fichier --> Enregistrer sous) après avoir coché la case "fermeture en fin de script" et de modifier ce fichier par éditeur afin qu'il lance l'exécution du script en question :
hl=fr&>
Mais cette solution est assez complexe et nécessite d'avoir deux fichiers (le .term et le .command) pour chaque script, et je voulais éviter cela.
La solution que je propose consiste à rajouter les lignes suivantes (appel à Applescript) à la fin du script ou avant un éventuel exit :
osascript -e 'tell application "Terminal" set nb to count of windows if nb > 1 then close first window if nb <= 1 then quit end tell' &
Supprimez la quatrième ligne (et le test nb>1) si vous ne souhaitez pas quitter le T.
Deux questions maintenant :
1) Pourquoi ne puis-je pas mettre de else dans le "if-statement", contrairement à ce qui est indiqué ici :
riptLangGuide/index.html>,
et ceci aussi bien avec osascript que dans l'Editeur de Script ?
2) Dans certaines circonstances, si le T est déjà ouvert, le lancement par double-clic ne fonctionne pas (et ceci aussi bien avec un .term qu'un .command). Quelqu'un sait-il pourquoi, et comment y remédier ?
JPaul.
-- /==/==- Jean-Paul BLANC / /--/--// quelque-part (somewhere) |/| L | en (in) /|| = ||| FRANCE
Bonjour, si tu veux que la fenêtre se ferme toute seule à la fin d'un script, va dans les préférences de Terminal. cliquer sur l’onglet Réglages en haut, puis sur l’onglet Shell dans l’onglet plus en bas. Choisir « fermer la fenêtre » dans Lorsque le shell quitte.
Le mardi 17 Avril 2007 à 17:32 par blanc :
Bonjour à tous,
Peut-être le connaissez-vous déjà, mais comme je l'ai perso
cherché
plusieurs fois en vain, je pense qu'il peut être utile à
plusieurs.
Voici donc le moyen que j'ai trouvé de fermer la fenêtre du
Terminal (et
de quitter celui-ci si c'est la seule fenêtre ouverte) en fin
d'exécution d'un shell-script que l'on aurait lancé par un
double-clic
(fichier xxx.command).
Bien sûr, il existe la solution de créer à partir du T un
fichier
xxx.term (par Fichier --> Enregistrer sous) après avoir coché
la case
"fermeture en fin de script" et de modifier ce fichier par
éditeur afin
qu'il lance l'exécution du script en question :
hl=fr&>
Mais cette solution est assez complexe et nécessite d'avoir deux
fichiers (le .term et le .command) pour chaque script, et je voulais
éviter cela.
La solution que je propose consiste à rajouter les lignes suivantes
(appel à Applescript) à la fin du script ou avant un
éventuel exit :
osascript -e 'tell application "Terminal"
set nb to count of windows
if nb > 1 then close first window
if nb <= 1 then quit
end tell' &
Supprimez la quatrième ligne (et le test nb>1) si vous ne souhaitez
pas
quitter le T.
Deux questions maintenant :
1) Pourquoi ne puis-je pas mettre de else dans le "if-statement",
contrairement à ce qui est indiqué ici :
riptLangGuide/index.html>,
et ceci aussi bien avec osascript que dans l'Editeur de Script ?
2) Dans certaines circonstances, si le T est déjà ouvert, le
lancement
par double-clic ne fonctionne pas (et ceci aussi bien avec un .term
qu'un .command). Quelqu'un sait-il pourquoi, et comment y remédier ?
JPaul.
--
/==/==\- Jean-Paul BLANC
/ /--/--//\ quelque-part (somewhere)
|/| L |\ en (in)
/|| = |||\ FRANCE
Bonjour,
si tu veux que la fenêtre se ferme toute seule à la fin d'un script, va dans les préférences de Terminal.
cliquer sur l’onglet Réglages en haut, puis sur l’onglet Shell dans l’onglet plus en bas. Choisir « fermer la fenêtre » dans Lorsque le shell quitte.
Peut-être le connaissez-vous déjà, mais comme je l'ai perso cherché plusieurs fois en vain, je pense qu'il peut être utile à plusieurs.
Voici donc le moyen que j'ai trouvé de fermer la fenêtre du Terminal (et de quitter celui-ci si c'est la seule fenêtre ouverte) en fin d'exécution d'un shell-script que l'on aurait lancé par un double-clic (fichier xxx.command).
Bien sûr, il existe la solution de créer à partir du T un fichier xxx.term (par Fichier --> Enregistrer sous) après avoir coché la case "fermeture en fin de script" et de modifier ce fichier par éditeur afin qu'il lance l'exécution du script en question :
hl=fr&>
Mais cette solution est assez complexe et nécessite d'avoir deux fichiers (le .term et le .command) pour chaque script, et je voulais éviter cela.
La solution que je propose consiste à rajouter les lignes suivantes (appel à Applescript) à la fin du script ou avant un éventuel exit :
osascript -e 'tell application "Terminal" set nb to count of windows if nb > 1 then close first window if nb <= 1 then quit end tell' &
Supprimez la quatrième ligne (et le test nb>1) si vous ne souhaitez pas quitter le T.
Deux questions maintenant :
1) Pourquoi ne puis-je pas mettre de else dans le "if-statement", contrairement à ce qui est indiqué ici :
riptLangGuide/index.html>,
et ceci aussi bien avec osascript que dans l'Editeur de Script ?
2) Dans certaines circonstances, si le T est déjà ouvert, le lancement par double-clic ne fonctionne pas (et ceci aussi bien avec un .term qu'un .command). Quelqu'un sait-il pourquoi, et comment y remédier ?
JPaul.
-- /==/==- Jean-Paul BLANC / /--/--// quelque-part (somewhere) |/| L | en (in) /|| = ||| FRANCE
Bonjour, si tu veux que la fenêtre se ferme toute seule à la fin d'un script, va dans les préférences de Terminal. cliquer sur l’onglet Réglages en haut, puis sur l’onglet Shell dans l’onglet plus en bas. Choisir « fermer la fenêtre » dans Lorsque le shell quitte.