Exécuter des Scripts Shell à partir du Dock OS X?

comment configurer un script shell pour l'exécuter à partir du Mac OSX dock? Il semble que le simple fait de créer un raccourci ouvrira le fichier dans mon éditeur. Est-il un drapeau que je dois mettre quelque part pour lui dire de courir au lieu de l'ouvrir pour le montage?

137
demandé sur Eric Leschinski 2008-11-11 19:24:50

9 réponses

vous pouvez créer un flux de travail D'Automateur avec une seule étape - "Exécuter le script Shell"

puis File > Save As , et changer le Format de fichier en"Application". Lorsque vous ouvrez l'application, elle exécute L'étape script Shell, exécute la commande, quitte après qu'elle soit terminée.

l'avantage de ceci est vraiment simple à faire, et vous pouvez très facilement obtenir l'entrée d'utilisateur (par exemple, en sélectionnant un tas de fichiers), puis passer à la entrée du script shell (soit vers stdin, soit comme arguments).

(Automator est dans votre dossier /Applications !)

Example workflow

166
répondu dbr 2012-10-23 12:36:37

si vous n'avez pas besoin d'une fenêtre de Terminal, vous pouvez faire n'importe quel fichier exécutable Une 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 avec un clic.

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

38
répondu Jeremy Banks 2008-11-11 16:28:24

je sais que c'est vieux mais au cas où il est utile à d'autres:

si vous avez besoin d'exécuter un script et que vous voulez que le terminal apparaisse pour que vous puissiez voir les résultats, vous pouvez faire comme Abyss Knight a dit et changer l'extension en .commande. Si vous double-cliquez dessus pour ouvrir une fenêtre de terminal et exécutez.

j'ai cependant eu besoin de cela pour exécuter à partir d'automator ou appleScript. Donc pour obtenir ceci pour ouvrir un nouveau terminal la commande que j'ai lancée à partir de "run shell script" était "ouvrez myShellScript.commande" et il a ouvert un nouveau terminal.

16
répondu Jason Tholstrup 2010-05-04 04:34:07

sur OSX Mavericks:

  1. créez votre script shell.
  2. Faire de votre shell script exécutable:

    chmod +x your-shell-script.sh
    
  3. renommez votre script pour avoir un suffixe .app :

    mv your-shell-script.sh your-shell-script.app
    
  4. faites glisser le script vers le dock OSX.
  5. renommez votre script en arrière à un .sh suffixe:

    mv your-shell-script.app your-shell-script.sh
    
  6. faites un clic droit sur le fichier dans Finder et cliquez sur l'option" Get Info".
  7. Au bas de la fenêtre, définissez le script shell pour ouvrir le terminal.

lorsque vous cliquez sur le script dans le dock, une fenêtre de terminal apparaît et exécute votre script.

Bonus: pour obtenir le terminal à fermer lorsque votre script est terminé, ajouter exit 0 à la fin et changer les paramètres du terminal à "fermer la coquille si elle est sortie proprement "comme il est dit à faire dans cette réponse ainsi .

15
répondu stiemannkj1 2017-05-23 12:26:20

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 s'exécutera dans une fenêtre de terminal lorsque cliqué au lieu d'ouvrir un éditeur.

si vous voulez avoir une extension (comme foo.sh), vous pouvez aller dans la fenêtre file info de Finder et changer l'application par défaut pour ce script particulier à partir de ce Qu'il est (TextEdit, TextMate, quel que soit le défaut défini sur votre ordinateur pour .sh files) au Terminal. Il s'exécutera alors au lieu de s'ouvrir dans un éditeur de texte. Encore une fois, vous devrez le traîner sur le côté droit du Quai.

7
répondu Jason Coco 2008-11-11 16:42:30

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' .commandez l'extension ou créez un AppleScript pour exécuter le shell.

5
répondu willasaywhat 2008-11-11 16:27:45

comme joe l'a mentionné, créer le script shell et ensuite créer un script applescript pour appeler le script shell, permettra d'accomplir ceci, et est très pratique.

Script Shell

  1. créez votre script shell dans votre éditeur de texte préféré, par exemple:

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

    (ce qui exécute l'exécutable w32, en utilisant le cadre mono)

  2. Enregistrer le 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 commande pour appeler des commandes shell externes
    • "sh ...." - c'est votre script shell (chemin complet) créé dans la première étape (vous pouvez également exécuter des commandes directes, je pourrais omettre le script shell et juste exécuter ma commande mono ici)
    • user name - déclare applescript vous voulez exécuter la commande en tant qu'utilisateur spécifique
    • "<enter username here> - remplacer par votre nom d'utilisateur (conserver les citations) ex "josh
    • password - déclare d'applescript votre mot de passe
    • "<enter password here>" - remplacer par votre mot de passe (conservation de devis) ex "mypass "
    • with administrative privileges - déclare que vous souhaitez exécuter en tant qu'administrateur

Créez Votre .APP

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

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

  3. Copiez votre fichier app dans votre dossier apps

4
répondu CJoshDoll 2011-12-23 04:14:45

Dans l'Éditeur de Script:

do shell script "/full/path/to/your/script -with 'all desired args' "

Enregistrer comme un paquet d'application.

tant Que tout ce que vous voulez faire est d'obtenir l'effet du script, ce sera beau travail. Vous ne verrez ni STDOUT ni STDERR.

4
répondu Joe McMahon 2015-07-23 23:21:20

Quelqu'un a écrit...

je viens de mettre tous les fichiers qui se terminent par ".sh" pour l'ouvrir avec le Terminal. Il fonctionne bien et vous n'avez pas à changer le nom de chaque script shell vous souhaitez exécuter.

-1
répondu Jonny 2013-05-14 02:33:41