如何在Mac OS X上将PHP shell脚本作为Automator操作执行

时间:2009-09-09 09:40:01

标签: php macos shell service automator

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

5 个答案:

答案 0 :(得分:6)

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

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

#!/bin/bash   
php myscript.php

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

chmod +x my_bash_script.sh

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

答案 1 :(得分:6)

上面的解决方案非常好,但我发现它对我不起作用,可能是因为后来改变了shell,php或OS版本(我使用的是OS X 10.8)。经过大量的讨论后,我发现答案是引用heredoc标记。

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

php -- "$@" <<'EOF'
<?php 
print_r( $argv );
?>
EOF

答案 2 :(得分:4)

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

Using "execute shell script" action for PHP code

(我强烈建议学习Python,Ruby或Perl .. PHP确实对网络编程有一些优势,但它不适用于命令行脚本..它肯定是可行的,它只是没有几乎是......愉快的)

答案 3 :(得分:3)

Automator支持的shell列表在

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

您可以按this guy's instructions为/ usr / bin / php添加条目。您可能希望先将.action文件复制到〜/ Library / Automator,然后再处理副本。

当然,正如其他人所建议的那样,将它包装在bash脚本中可能更容易。

答案 4 :(得分:1)

Automator有一个“运行Shell脚本”操作,只需将其添加到您的工作流程中,然后按照左下方的说明进行操作。