Меня соблазняет способность Automator.app создавать контекстные сервисы в Mac OS X Snow Leopard. Я хотел бы создать некоторые доступные для клавиатуры ярлыки, чтобы манипулировать текстовыми фрагментами, вызывая скрипт оболочки. Однако Automator предлагает только bash, Perl, Python и Ruby (в том числе), чтобы это разрешить. Но поскольку PHP также поставляется с Mac OS (и, честно говоря, это единственный язык сценариев, который я полностью освоил), мне интересно, почему я не могу запустить скрипт оболочки PHP.
Это всего лишь взломать, но как насчет создания сценария python или ruby или perl или bash, который вызывает интерпретатор командной строки php с скриптом php, который вы хотите выполнить?
Например, в bash было бы так просто:
#!/bin/bash php myscript.php
Теперь сохраните его, дайте ему разрешение на исполнение:
chmod +x my_bash_script.sh
И вуаля. Теперь Automator может запустить сценарий bash, который вызывает скрипт php.
Решение dbr выше превосходно, но я обнаружил, что это не сработало для меня, возможно, из-за более позднего изменения версии оболочки, php или OS (я использую OS X 10.8). После большого поцарапания головы я обнаружил, что ответом является цитировать маркер heredoc.
Полезным дополнением является использование соответствующего синтаксиса для передачи аргументов через php-скрипт. Объединяя все это, я использую:
php -- "$@" <<'EOF' <?php print_r( $argv ); ?> EOF
Вы можете использовать действие «Run Shell Script» для запуска PHP-скрипта. Один автономный способ состоит в том, чтобы использовать <<EOF ... EOF
чтобы передать скрипт команде php
:
(Я бы настоятельно рекомендовал изучать Python, Ruby или Perl .. У PHP есть некоторые преимущества для веб-программирования, но он просто не предназначен для сценариев командной строки .. Это, безусловно, выполнимо, это будет просто не так … приятно )
Список оболочек, поддерживаемых Automator, находится в
/System/Library/Automator/Run\ Shell\ Script.action/Contents/Resources/Shells.plist
Вы можете следовать инструкциям этого парня, чтобы добавить запись для / usr / bin / php. Вы можете сначала скопировать файл .action в ~ / Library / Automator и вместо этого работать с копией.
Конечно, проще всего просто обернуть его в сценарий bash, как предложили другие.
У Automator есть «Run Shell Script» Действие просто добавьте его в рабочий процесс и следуйте инструкциям в левом нижнем углу.