10

Mac OS X Snow Leopard でコンテキスト サービスを作成できる Automator.app の機能に興味をそそられました。シェル スクリプトを呼び出してテキスト スニペットを操作するために、キーボードでアクセス可能なショートカットをいくつか作成したいと考えています。ただし、Automator は、これを許可するために (とりわけ) bash、Perl、Python、Ruby のみを提案しています。しかし、PHP は Mac OS にも同梱されているため (そして、正直なところ、これは私が完全にマスターしている唯一のスクリプト言語です)、なぜ PHP シェル スクリプトを実行できないのか疑問に思っています。

4

5 に答える 5

6

これは単なるハックですが、実行したいphpスクリプトでphpコマンドラインインタープリターを呼び出すpython、またはrubyまたはperlまたはbashスクリプトを作成するのはどうですか?

たとえば、bash では次のように簡単です。

#!/bin/bash   
php myscript.php

保存して、実行許可を与えます。

chmod +x my_bash_script.sh

そして出来上がり。Automator は、php スクリプトを呼び出す bash スクリプトを実行できるようになりました。

于 2009-09-09T09:54:27.587 に答える
6

上記の dbr のソリューションは優れていますが、おそらくシェル、php、または OS バージョン (私は OS X 10.8 を使用しています) が後で変更されたため、うまくいかないことがわかりました。多くの頭を悩ませた後、答えはヒアドキュメントマーカーを引用することであることがわかりました。

便利な追加機能は、適切な構文を使用して引数を php スクリプトに渡すことです。すべてをまとめて、私は使用しています:

php -- "$@" <<'EOF'
<?php 
print_r( $argv );
?>
EOF
于 2012-10-27T22:14:27.640 に答える
4

「シェル スクリプトの実行」アクションを使用して、PHP スクリプトを実行できます。自己完結型の方法の 1 つは<<EOF ... EOF、スクリプトをphpコマンドに渡すために使用することです。

使用する

(Python、Ruby、または Perl を学習することを強くお勧めします。PHP には Web プログラミングにいくつかの利点がありますが、コマンドライン スクリプトを意図したものではありません。確かに実行可能ですが、それほど快適ではありません。 )

于 2009-10-25T16:12:54.717 に答える
3

Automator がサポートするシェルのリストは

 /System/Library/Automator/Run\ Shell\ Script.action/Contents/Resources/Shells.plist

この男の指示に従って、/usr/bin/php のエントリを追加できます。最初に .action ファイルを ~/Library/Automator にコピーし、代わりにそのコピーで作業することをお勧めします。

もちろん、他の人が示唆しているように、bash スクリプトでラップする方がおそらく簡単です。

于 2009-10-25T16:30:27.477 に答える
1

Automator には「Run Shell Script」アクションがあり、それをワークフローに追加して、左下の指示に従ってください。

于 2009-09-09T11:02:02.840 に答える