Comment configurer un script shell à exécuter à partir du dock Mac OSX? Il semble que la simple création d'un raccourci ouvrira le fichier dans mon éditeur. Dois-je définir un indicateur quelque part pour lui dire de s'exécuter au lieu de l'ouvrir pour le modifier?
160
Réponses:
Vous pouvez créer un flux de travail Automator en une seule étape - "Exécuter le script Shell"
Ensuite
File > Save As
, changez le format de fichier en "Application". Lorsque vous ouvrez l'application, elle exécutera l'étape de script Shell, exécutant la commande, puis se fermant une fois celle-ci terminée.L'avantage est que c'est vraiment simple à faire, et vous pouvez très facilement obtenir l'entrée de l'utilisateur (par exemple, sélectionner un tas de fichiers), puis la transmettre à l'entrée du script shell (soit à stdin, soit en tant qu'arguments).
(Automator est dans votre
/Applications
dossier!)la source
open -a SomeAppThing.app --args --etc=2
cela devrait se concentrer. Vous pouvez également le concentrer en utilisant Applescript (par exempleosascript -e 'tell application "Google Chrome" to activate'
)Si vous n'avez pas besoin d'une fenêtre Terminal, vous pouvez faire de n'importe quel fichier exécutable une application simplement en créant un script shell
Example
et en le déplaçant vers le nom de fichierExample.app/Contents/MacOS/Example
. Vous pouvez placer cette nouvelle application dans votre dock comme n'importe quelle autre, et l'exécuter en un clic.REMARQUE: le nom de l'application doit correspondre exactement au nom du script. Ainsi, le répertoire de niveau supérieur doit être
Example.app
et le script dans leContents/MacOS
sous - répertoire doit être nomméExample
, et le script doit être exécutable.Si vous avez besoin d'afficher la fenêtre du terminal, je n'ai pas de solution simple. Vous pourriez probablement faire quelque chose avec Applescript, mais ce n'est pas très clair.
la source
example.sh.app
, pas seulementexample.app
. Vous recevrez un avertissement concernant l'application endommagée si ceux-ci ne correspondent pas.app
et avec cette structure, il sera traité comme une application exécutable. Si vous souhaitez consulter le contenu de ce dossier dans le Finder, vous devrez cliquer dessus avec le bouton droit de la souris et sélectionner "Afficher le contenu du package" (car un double-clic sur celui-ci lancerait l'application). Dans le terminal, il apparaîtra simplement comme un dossier. (Je ne sais pas si Finder vous permettra de renommer le dossier en .app par lui-même; vous devrez peut-être le renommer dans le terminal.)Sur OSX Mavericks:
Rendez votre script shell exécutable:
Renommez votre script pour avoir un
.app
suffixe:Renommez votre script en
.sh
suffixe:Maintenant, lorsque vous cliquez sur le script dans le dock, une fenêtre de terminal apparaîtra et exécutera votre script.
Bonus: pour que le terminal se ferme lorsque votre script est terminé, ajoutez
exit 0
à la fin et modifiez les paramètres du terminal pour "fermer le shell si vous quittez proprement" comme il est indiqué dans cette réponse SO .la source
Je sais que c'est vieux mais au cas où cela serait utile aux autres:
Si vous avez besoin d'exécuter un script et que vous voulez que le terminal apparaisse pour voir les résultats, vous pouvez faire comme Abyss Knight l'a dit et changer l'extension en .command. Si vous double-cliquez dessus, une fenêtre de terminal s'ouvre et s'exécute.
J'avais cependant besoin de cela pour fonctionner à partir d'automate ou d'AppleScript. Donc, pour que cela ouvre un nouveau terminal, la commande que j'ai exécutée à partir de "exécuter le script shell" était "open myShellScript.command" et elle s'est ouverte dans un nouveau terminal.
la source
Tant que votre script est exécutable et n'a pas d'extension, vous pouvez le faire glisser tel quel sur le côté droit (côté Document) du Dock et il fonctionnera dans une fenêtre de terminal lorsque vous cliquez dessus au lieu d'ouvrir un éditeur.
Si vous souhaitez avoir une extension (comme foo.sh), vous pouvez accéder à la fenêtre d'informations sur le fichier dans le Finder et modifier l'application par défaut pour ce script particulier quelle qu'elle soit (TextEdit, TextMate, quelle que soit la valeur par défaut définie sur votre ordinateur pour .sh) vers le terminal. Il s'exécutera alors simplement au lieu de s'ouvrir dans un éditeur de texte. Encore une fois, vous devrez le faire glisser vers le côté droit du Dock.
la source
Je pense que ce fil peut être utile: http://forums.macosxhints.com/archive/index.php/t-70973.html
Pour paraphraser, vous pouvez le renommer avec l'extension .command ou créer un AppleScript pour exécuter le shell.
la source
Comme joe l'a mentionné, créer le script shell, puis créer un script applescript pour appeler le script shell, accomplira cela, et est très pratique.
Script de Shell
Créez votre script shell dans votre éditeur de texte préféré, par exemple:
mono "/Volumes/Media/~Users/me/Software/keepass/keepass.exe"
(cela exécute l'exécutable w32, en utilisant le framework mono)
Enregistrer le script shell, pour mon exemple "StartKeepass.sh"
Script Apple
Ouvrez AppleScript Editor et appelez le script shell
do shell script "sh /Volumes/Media/~Users/me/Software/StartKeepass.sh" user name "<enter username here>" password "<Enter password here>" with administrator privileges
do shell script
- commande applescript pour appeler des commandes shell externes"sh ...."
- ceci est votre script shell (chemin complet) créé à la première étape (vous pouvez également exécuter des commandes directes, je pourrais omettre le script shell et simplement exécuter ma commande mono ici)user name
- déclare à applescript que vous souhaitez exécuter la commande en tant qu'utilisateur spécifique"<enter username here>
- remplacer par votre nom d'utilisateur (en gardant les guillemets) ex "josh"password
- déclare à applescript votre mot de passe"<enter password here>"
- remplacez par votre mot de passe (en gardant les guillemets) ex "mypass"with administrative privileges
- déclare que vous souhaitez exécuter en tant qu'administrateurCréez votre .APP
enregistrez votre applescript sous nomfichier.scpt, dans mon cas RunKeepass.scpt
enregistrez sous ... votre applescript et changez le format de fichier en application, ce qui entraîne RunKeepass.app dans mon cas
Copiez votre fichier d'application dans votre dossier d'applications
la source
Dans l'éditeur de script:
do shell script "/full/path/to/your/script -with 'all desired args'
"Enregistrez en tant qu'ensemble d'applications.
Tant que tout ce que vous voulez faire est d'obtenir l'effet du script, cela fonctionnera bien. Vous ne verrez ni STDOUT ni STDERR.
la source
Quelqu'un a écrit ...
la source