如何在 Mac OS X 上将 PHP shell 脚本作为 Automator 操作执行
我对 Automator.app 在 Mac OS X Snow Leopard 中创建上下文服务的能力很感兴趣。我想创建一些键盘可访问的快捷方式来通过调用 shell 脚本来操作文本片段。然而,Automator 仅建议使用 bash、Perl、Python 和 Ruby(以及其他)来允许此操作。但是,由于 PHP 也随 Mac OS 一起提供(而且,说实话,它是我完全掌握的唯一脚本语言),我想知道为什么我无法运行 PHP shell 脚本。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
上面的 dbr 解决方案非常出色,但我发现它对我不起作用,可能是由于后来 shell、php 或操作系统版本发生了变化(我使用的是 OS X 10.8)。经过一番绞尽脑汁后,我发现答案是引用heredoc标记。
一个有用的补充是使用适当的语法将参数传递给 php 脚本。将所有这些放在一起,我正在使用:
dbr's solution above is excellent, but I found that it didn't work for me, perhaps due to a later change in the shell, php, or OS version (I'm using OS X 10.8). After a lot of head-scratching I found that the answer is to quote the heredoc marker.
A useful addition is to use the appropriate syntax to pass the arguments through to the php script. Putting all that together, I'm using:
这只是一个 hack,但是创建一个 python、ruby、perl 或 bash 脚本来调用 php 命令行解释器以及您想要执行的 php 脚本怎么样?
例如,在 bash 中就像这样简单:
现在保存它,授予它执行权限:
瞧。 Automator 现在可以运行 bash 脚本,该脚本调用 php 脚本。
This is just a hack, but how about creating a python, or ruby or perl or bash script that calls php command-line interpreter with the php script you want to execute?
For instance in bash would be as simple as this:
Now save it, give it permission for execution:
And voilá. Automator can now run the bash script, which calls the php script.
您可以使用“运行 Shell 脚本”操作来运行 PHP 脚本。一种独立的方法是使用
< 将脚本传递给
php
命令:(我强烈建议学习 Python、Ruby 或 Perl。PHP 确实对 Web 编程有一些优势,但只是不适用于命令行脚本。它当然是可行的,只是不太......令人愉快)
You can use the "Run Shell Script" action to run a PHP script. One self-contained way is to use
<<EOF ... EOF
to pass the script to thephp
command:(I would strongly recommend learning Python, Ruby or Perl.. PHP does has some advantages for web-programming, but is just not intended for command-line scripting.. It's certainly doable, it'll just not be nearly as.. pleasant)
Automator 支持的 shell 列表位于
您可以按照 此人的说明 进行操作添加 /usr/bin/php 条目。您可能需要先将 .action 文件复制到 ~/Library/Automator,然后再处理副本。
当然,正如其他人所建议的那样,将其包装在 bash 脚本中可能更容易。
The list of shells that Automator supports is in
You can follow this guy's instructions to add an entry for /usr/bin/php. You may want to copy the .action file to ~/Library/Automator first, and work on the copy instead.
Of course, it's probably easier to just wrap it in a bash script, as others have suggested.
Automator 有一个“运行 Shell 脚本”操作,只需将其添加到您的工作流程中并按照左下角的说明进行操作即可。
Automator has a "Run Shell Script" Action just add it to your workflow and follow the instructions on the bottom left.