10

我对 Automator.app 在 Mac OS X Snow Leopard 中创建上下文服务的能力很感兴趣。我想创建一些可通过键盘访问的快捷方式,通过调用 shell 脚本来操作文本片段。但是,Automator 只建议使用 bash、Perl、Python 和 Ruby(以及其他)来允许这样做。但是,由于 PHP 还附带 Mac OS(老实说,它是我完全掌握的唯一脚本语言),我想知道为什么我不能运行 PHP shell 脚本。

4

5 回答 5

6

dbr 上面的解决方案非常好,但我发现它对我不起作用,可能是由于后来更改了 shell、php 或 OS 版本(我使用的是 OS X 10.8)。经过一番摸索后,我发现答案是引用 heredoc 标记。

一个有用的补充是使用适当的语法将参数传递给 php 脚本。把所有这些放在一起,我正在使用:

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

这只是一个 hack,但是如何创建一个 python、ruby、perl 或 bash 脚本来调用你想要执行的 php 脚本的 php 命令行解释器?

例如在 bash 中就像这样简单:

#!/bin/bash   
php myscript.php

现在保存它,给它执行权限:

chmod +x my_bash_script.sh

瞧。Automator 现在可以运行调用 php 脚本的 bash 脚本。

于 2009-09-09T09:54:27.587 回答
4

您可以使用“运行 Shell 脚本”操作来运行 PHP 脚本。一种自包含的方法是使用<<EOF ... EOF将脚本传递给php命令:

使用

(我强烈建议学习 Python、Ruby 或 Perl。PHP 确实在 Web 编程方面有一些优势,但它并不适用于命令行脚本。它当然是可行的,只是不会那么令人愉快。 )

于 2009-10-25T16:12:54.717 回答
3

Automator 支持的 shell 列表位于

 /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 有一个“运行 Shell 脚本”操作,只需将其添加到您的工作流程并按照左下角的说明进行操作。

于 2009-09-09T11:02:02.840 回答