Comment lancer un script bash depuis le Finder sous OS X?


14

Comment lancer un script bash depuis le Finder sous OS X?

Je vais bien travailler à la CLI, mais mon petit script n'est pas tellement aimé par mes collègues liés à l'interface graphique.

Réponses:


23

Pour être convivial avec le Finder, un script bash doit avoir le .commandsuffixe. Bien sûr, il doit également être exécutable.


1
Vous venez de remporter mon prix mondialement connu de "Geek Hero of the Day"! Merci.
Stu Thompson

Cette réponse a rendu la question intéressante.
Sergio Acosta

1
fyi, si quelqu'un essaie de créer un lien logiciel vers un script, le script lui-même (la destination du lien logiciel) doit se terminer par .command, et le lien lui-même peut avoir n'importe quelle extension. bizarre, je sais.
AlcubierreDrive

chmod + x filename.ext pour le rendre exécutable
Hefewe1zen

5

La réponse de @ mouviciel fonctionnera très bien, mais pour plus de panache, essayez Platypus , qui vous permet de créer de véritables bundles d'application à partir de divers langages de script, y compris des scripts shell Bash. L'un des avantages est que vous pouvez lui donner une belle icône :)


1

Je viens de sortir bashapp via github, qui compile un script bash dans un programme binaire (source C) et crée la structure de répertoire nécessaire pour le rendre cliquable dans le Finder. Voici le README:

http://github.com/arbinger/bashapp

J'en avais besoin pour créer quelques scripts de lancement de service sur lesquels cliquer dans le Finder, au lieu de demander aux utilisateurs d'ouvrir un terminal. Il fournit également une obfuscation de script simple via le cryptage, ce qui peut être pratique si vous devez distribuer le programme.

Si vous souhaitez ajouter des icônes, vous pouvez le faire en ajoutant le Info.plistfichier et le .icnsfichier au Contents/Resources/dossier.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.