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

发布于 2024-08-04 10:16:51 字数 231 浏览 4 评论 0 原文

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

I'm tempted by Automator.app's ability to create contextual services in Mac OS X Snow Leopard. I would like to create some keyboard accessible shortcuts to manipulate text snippets by calling a shell script. However, Automator only suggests bash, Perl, Python and Ruby (among others) to allow this. But, since PHP also ships with Mac OS (and, to be honest, it's the only scripting language I fully master), I wonder why I can't run a PHP shell script.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

辞取 2024-08-11 10:16:51

上面的 dbr 解决方案非常出色,但我发现它对我不起作用,可能是由于后来 shell、php 或操作系统版本发生了变化(我使用的是 OS X 10.8)。经过一番绞尽脑汁后,我发现答案是引用heredoc标记。

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

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

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:

php -- "$@" <<'EOF'
<?php 
print_r( $argv );
?>
EOF
苦妄 2024-08-11 10:16:51

这只是一个 hack,但是创建一个 python、ruby、perl 或 bash 脚本来调用 php 命令行解释器以及您想要执行的 php 脚本怎么样?

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

#!/bin/bash   
php myscript.php

现在保存它,授予它执行权限:

chmod +x my_bash_script.sh

瞧。 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:

#!/bin/bash   
php myscript.php

Now save it, give it permission for execution:

chmod +x my_bash_script.sh

And voilá. Automator can now run the bash script, which calls the php script.

蓝梦月影 2024-08-11 10:16:51

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

对 PHP 代码使用“执行 shell 脚本”操作

(我强烈建议学习 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 the php command:

Using "execute shell script" action for PHP code

(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)

半边脸i 2024-08-11 10:16:51

Automator 支持的 shell 列表位于

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

您可以按照 此人的说明 进行操作添加 /usr/bin/php 条目。您可能需要先将 .action 文件复制到 ~/Library/Automator,然后再处理副本。

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

The list of shells that Automator supports is in

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

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.

不美如何 2024-08-11 10:16:51

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

Automator has a "Run Shell Script" Action just add it to your workflow and follow the instructions on the bottom left.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文