Mac OS X Snow Leopard でコンテキスト サービスを作成できる Automator.app の機能に興味をそそられました。シェル スクリプトを呼び出してテキスト スニペットを操作するために、キーボードでアクセス可能なショートカットをいくつか作成したいと考えています。ただし、Automator は、これを許可するために (とりわけ) bash、Perl、Python、Ruby のみを提案しています。しかし、PHP は Mac OS にも同梱されているため (そして、正直なところ、これは私が完全にマスターしている唯一のスクリプト言語です)、なぜ PHP シェル スクリプトを実行できないのか疑問に思っています。
5 に答える
これは単なるハックですが、実行したいphpスクリプトでphpコマンドラインインタープリターを呼び出すpython、またはrubyまたはperlまたはbashスクリプトを作成するのはどうですか?
たとえば、bash では次のように簡単です。
#!/bin/bash
php myscript.php
保存して、実行許可を与えます。
chmod +x my_bash_script.sh
そして出来上がり。Automator は、php スクリプトを呼び出す bash スクリプトを実行できるようになりました。
上記の dbr のソリューションは優れていますが、おそらくシェル、php、または OS バージョン (私は OS X 10.8 を使用しています) が後で変更されたため、うまくいかないことがわかりました。多くの頭を悩ませた後、答えはヒアドキュメントマーカーを引用することであることがわかりました。
便利な追加機能は、適切な構文を使用して引数を php スクリプトに渡すことです。すべてをまとめて、私は使用しています:
php -- "$@" <<'EOF'
<?php
print_r( $argv );
?>
EOF
「シェル スクリプトの実行」アクションを使用して、PHP スクリプトを実行できます。自己完結型の方法の 1 つは<<EOF ... EOF
、スクリプトをphp
コマンドに渡すために使用することです。
(Python、Ruby、または Perl を学習することを強くお勧めします。PHP には Web プログラミングにいくつかの利点がありますが、コマンドライン スクリプトを意図したものではありません。確かに実行可能ですが、それほど快適ではありません。 )
Automator がサポートするシェルのリストは
/System/Library/Automator/Run\ Shell\ Script.action/Contents/Resources/Shells.plist
この男の指示に従って、/usr/bin/php のエントリを追加できます。最初に .action ファイルを ~/Library/Automator にコピーし、代わりにそのコピーで作業することをお勧めします。
もちろん、他の人が示唆しているように、bash スクリプトでラップする方がおそらく簡単です。
Automator には「Run Shell Script」アクションがあり、それをワークフローに追加して、左下の指示に従ってください。