10
votes

Comment exécuter un script de shell PHP comme action automatisatrice sur Mac OS X

Je suis tenté par Automator.App la capacité de créer des services contextuels dans Mac OS X Snow Leopard. Je souhaite créer des raccourcis accessibles au clavier pour manipuler des extraits de texte en appelant un script shell. Cependant, l'automatiseur suggère uniquement Bash, Perl, Python et Ruby (entre autres) pour le permettre. Mais, étant donné que PHP expédie également avec Mac OS (et, pour être honnête, c'est le seul langage de script que je maîtrise entièrement), je me demande pourquoi je ne peux pas exécuter un script de shell PHP.


0 commentaires

5 Réponses :


6
votes

Ceci est juste un piratage, mais que diriez-vous de créer un script Python, ou Ruby ou Perl ou Bash qui appelle l'interpréteur de ligne de commande PHP avec le script PHP que vous souhaitez exécuter?

Par exemple, dans Bash serait aussi simple Comme ceci: xxx

Enregistrez maintenant, donnez-lui la permission d'exécution: xxx

et voilá. L'automator peut maintenant exécuter le script Bash, qui appelle le script PHP.


0 commentaires

1
votes

Automator a une action «Exécuter Shell Script» l'ajoutez simplement à votre flux de travail et suivez les instructions en bas à gauche.


0 commentaires

4
votes

Vous pouvez utiliser l'action "Exécuter Shell Script" pour exécuter un script PHP. Une manière autonome est d'utiliser << eof ... eof pour transmettre le script à la commande php :

à l'aide de

(je recommanderais fortement à apprendre Python, Ruby ou Perl. PHP présente certains avantages pour la programmation Web, mais ne sont tout simplement pas destinés aux scripts de ligne de commande. C'est certainement faisable, ce sera certainement pas être presque aussi agréable)


0 commentaires

3
votes

La liste des coquilles que l'automatiseur prend en charge l'automatiseur est dans xxx

vous pouvez suivre Les instructions de ce type pour ajouter une entrée pour / usr / bin / php. Vous voudrez peut-être copier le fichier d'anaction à ~ / bibliothèque / automator et travaillez à la place de la copie.

Bien sûr, il est probablement plus facile de simplement l'envelopper dans un script Bash, car d'autres ont suggéré .


0 commentaires

6
votes

La solution de DBR ci-dessus est excellente, mais j'ai constaté que cela n'a pas fonctionné pour moi, peut-être en raison d'un changement ultérieur dans la version Shell, PHP ou OS (J'utilise OS X 10.8). Après beaucoup de têtes, j'ai constaté que la réponse est de citer le marqueur Heredoc.

Un ajout utile consiste à utiliser la syntaxe appropriée pour transmettre les arguments via le script PHP. Mettre tout cela ensemble, j'utilise: xxx


1 commentaires

Pour rendre ce travail pour Python, en utilisant l'interpréteur par défaut de votre ENV, changez ci-dessus en un seul trait: Python - "$ @" << "eof '