181 votes

Exécution de scripts shell à partir du Dock OS X?

Je suis sûr que la réponse est ridiculement évidente, mais jusqu'à présent, Google n'a pas été très utile. Comment configurer un script shell à exécuter depuis le dock? Il semble que le simple fait de créer un raccourci ouvrira le fichier dans mon éditeur. Y a-t-il un drapeau que je dois définir quelque part pour lui dire de s'exécuter au lieu de l'ouvrir pour le modifier?

210voto

dbr Points 66401

Vous pouvez créer un processus Automator avec une seule étape - "Exécuter le Script Shell"

Ensuite, File > Save As, et de modifier le Format de Fichier "Application". Lorsque vous ouvrez l'application, il va exécuter le Script Shell étape, l'exécution de la commande, la sortie après qu'il accomplit.

L'avantage à cela est qu'il est vraiment simple à faire, et vous pouvez très facilement obtenir la saisie de l'utilisateur (par exemple, la sélection d'un tas de fichiers), puis la passer à l'entrée du shell script (stdin, ou comme arguments).

(Automator est dans votre /Applications le dossier!)

Example workflow

56voto

Jeremy Banks Points 32470

Si vous n'avez pas besoin d'une fenêtre Terminal, vous pouvez transformer un fichier exécutable en application simplement en déplaçant example.sh à example.sh.app/Contents/MacOS/example.sh . Vous pouvez placer l'application dans votre dock comme n'importe quel autre et l'exécuter en un clic.

Si vous avez besoin d'avoir la fenêtre du terminal affichée, je n'ai pas de solution simple. Vous pourriez probablement faire quelque chose avec Applescript, mais ce n'est pas très propre.

19voto

Jason Tholstrup Points 951

Je sais c'est vieux mais dans ce cas il est utile à d'autres:

Si vous devez exécuter un script et vous souhaitez le terminal de pop up de sorte que vous pouvez voir les résultats que vous pouvez faire, comme l'Abîme dit au Chevalier et de changer l'extension en .commande. Si vous double-cliquez dessus pour ouvrir une fenêtre de terminal et exécutez.

J'ai cependant besoin de cela pour s'exécuter à partir d'automator ou appleScript. Donc, pour obtenir cela d'ouvrir un nouveau terminal la commande, j'ai couru à partir de "run script shell" était "ouverte myShellScript.commande" et il a ouvert un nouveau terminal.

5voto

Abyss Knight Points 2095

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 script AppleScript pour exécuter le shell.

5voto

CJoshDoll Points 31

Comme joe mentionné, la création du script shell, puis la création d'un script applescript pour appeler le script shell, permettra d'atteindre cet objectif, et est très maniable.

Script Shell

  1. Créer votre script shell dans votre éditeur de texte favori, par exemple:

    mono "/Volumes/Media/~Users/me/Software/keepass/keepass.exe"

    (cela va à l'w32 exécutable, en utilisant le framework mono)

  2. Enregistrer un script shell, pour mon exemple, "StartKeepass.sh"

Apple Script

  1. Ouvrir l'Éditeur AppleScript, et d'appeler 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 - applescript de commande d'appel externe des commandes shell
    • "sh ...." - c'est votre script shell (chemin complet) créé à l'étape (vous pouvez également exécuter des commandes directement, j'ai pu omettre le script shell et il suffit d'exécuter mon mono commande ici)
    • user name - déclare applescript vous voulez exécuter la commande en tant qu'utilisateur spécifique
    • "<enter username here> - la remplacer par votre nom d'utilisateur (en gardant les guillemets) ex "josh"
    • password - déclare applescript votre mot de passe
    • "<enter password here>" - remplacer votre mot de passe (en gardant les guillemets) ex "mypass"
    • with administrative privileges - déclare que vous souhaitez exécuter en tant qu'administrateur

Créer Votre .APP

  1. enregistrer votre applescript comme nom de fichier.scpt, dans mon cas RunKeepass.scpt

  2. enregistrer sous... votre applescript et modifier le format de fichier de l'application, résultant en RunKeepass.app dans mon cas

  3. Copie de votre application fichier dans votre dossier d'applications

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X