J'ai un script Shell qui dispose d'une autorisation d'exécution utilisateur sous OS X, mais lorsque je double-clique dessus, il s'ouvre dans un éditeur de texte. Comment puis-je le faire fonctionner en double-cliquant dessus?
Tout d'abord dans le terminal pour rendre le script exécutable en tapant:
chmod a+x (yourscriptname)
Ensuite, dans le Finder, cliquez avec le bouton droit de la souris sur votre fichier et sélectionnez "Ouvrir avec", puis "Autre ...".
Ici, vous sélectionnez l’application dans laquelle vous souhaitez exécuter le fichier. Pour pouvoir sélectionner un terminal, vous devez passer de "Applications recommandées" à "Toutes les applications". (L'application Terminal.app est disponible dans le dossier Utilitaires)
REMARQUE: à moins que vous ne souhaitiez pas que tous les fichiers de cette extension soient exécutés dans un terminal, vous ne devez pas activer la case "Toujours ouvrir avec".
Avez-vous essayé d'utiliser l'extension .command
?
À partir de OSX 10.10 (Yosemite) et depuis au moins OS X 10.8 (Mountain Lion), le comportement est le suivant lorsque vous ouvrir (double-cliquer) scripts exécutables depuis le Finder:
.command
: .____.Preferences... > Profiles
du terminal, vous pouvez choisir d’automatiquement fermer la fenêtre lorsque le script se ferme.cd -- "$(dirname "$BASH_SOURCE")"
juste après la ligne Shebangcd -- "$(dirname "$0")"
.chmod +x <script>
dans Terminal; sinon, vous verrez les symptômes suivants:.command
: le Finder affiche un message d'erreur trompeur suggérant que le problème peut être résolu via File > Get Info
, ce qui n'est pas vrai. Utilisez la méthode chmod +x
proposée ci-dessus.#!/bin/bash
): le comportement est comme si le suffixe était .sh
- voir ci-dessous..sh
, qu’il soit exécutable ou non: TextEdit.app
ou, si installé, avec Xcode.app
..scpt
ou .applescript
(même s’ils sont eux-mêmes marqués comme exécutables, ce qui n’est normalement pas le cas): [Apple]Script Editor
[1] Executable signifie: un script avec le (s) bit (s) d'autorisation d'exécutable défini (s) et l'utilisateur appelant - par rapport à la propriété du fichier - donc potentiellement autorisé à l'exécuter.
Si vous utilisez chmod a+x
pour définir tous bits de permission (ce qui est typique), n'importe qui peut l'invoquer (en supposant qu'ils soient également autorisés à lire fichier basé sur le (s) bit (s) d'autorisation lecture et la propriété du fichier).
Vous pouvez également créer une application Mac OS X normale à partir de votre script en utilisant Platypus
Le moyen le plus simple est de changer l'extension en .command
ou aucune extension.
Mais cela ouvrira le terminal, et vous devrez le fermer. Si vous ne souhaitez voir aucune sortie, vous pouvez utiliser Automator pour créer une application Mac sur laquelle vous pouvez cliquer deux fois, l'ajouter au dock, etc.
Automator
Run
dans le coin supérieur droit pour le tester.File > Save
pour créer l'application.Pas besoin d'utiliser des applications tierces telles que Platypus.
Créez simplement un script Apple Script avec Script Editor et utilisez la commande do Shell script "Shell commands"
pour les appels de commande directs ou les fichiers de script Shell exécutables, conservez le fichier de script modifiable en sécurité quelque part puis exportez-le pour créer un script d'application. le script de l'application peut être lancé par un double clic ou par une sélection dans un dossier.
Vous pouvez également définir les valeurs par défaut par extension de fichier à l'aide de RCDefaultApp:
http://www.rubicode.com/Software/RCDefaultApp/
potentiellement, vous pourriez configurer .sh pour qu'il s'ouvre dans iTerm/Terminal, etc. il aurait besoin d'autorisations d'exécution d'utilisateur, par exemple
chmod u+x filename.sh