我很想通过Automator.app在Mac OS X Snow Leopard中创建上下文服务的能力。我想通过调用shell脚本来创建一些键盘可访问的快捷方式来操作文本片段。但是,Automator只建议bash,Perl,Python和Ruby(以及其他)允许这样做。但是,由于PHP还附带了Mac OS(并且,老实说,它是我完全掌握的唯一脚本语言),我想知道为什么我不能运行PHP shell脚本。
答案 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)
一个有用的补充是使用适当的语法将参数传递给php脚本。将所有这些放在一起,我正在使用:
php -- "$@" <<'EOF'
<?php
print_r( $argv );
?>
EOF
答案 2 :(得分:4)
您可以使用“运行Shell脚本”操作来运行PHP脚本。一种自包含的方法是使用<<EOF ... EOF
将脚本传递给php
命令:
(我强烈建议学习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脚本”操作,只需将其添加到您的工作流程中,然后按照左下方的说明进行操作。