Jestem kuszony przez zdolność Automator.app do tworzenia usług kontekstowych w systemie Mac OS X Snow Leopard. Chciałbym utworzyć skróty klawiszowe dostępne do manipulowania fragmentami tekstu, wywołując skrypt powłoki. Jednak Automator sugeruje tylko bash, Perl, Python i Ruby (między innymi), aby na to zezwolić. Ale ponieważ PHP również jest dostarczane z Mac OS (i, szczerze mówiąc, jest to jedyny język skryptowy, który w pełni opanowałem), zastanawiam się, dlaczego nie mogę uruchomić skryptu powłoki PHP.Jak wykonać skrypt powłoki PHP jako działanie Automatora w systemie Mac OS X
Odpowiedz
To tylko hack, ale co powiesz na tworzenie pythona, rubinu, perla lub skryptu bash, który wywołuje interpreter wiersza poleceń php za pomocą skryptu php, który chcesz uruchomić?
Na przykład w bash będzie tak proste, jak to:
#!/bin/bash
php myscript.php
Teraz zapisz go, nadać mu uprawnienia do wykonania:
chmod +x my_bash_script.sh
i voila. Automator może teraz uruchomić skrypt bash, który wywołuje skrypt php.
Automator ma działanie "Run Shell Script" po prostu dodaj go do przepływu pracy i postępuj zgodnie z instrukcjami w lewym dolnym rogu.
Możesz użyć akcji "Uruchom skrypt powłoki", aby uruchomić skrypt PHP. Jeden samowystarczalny sposobem jest użycie <<EOF ... EOF
przekazać skrypt z poleceniem php
:
(gorąco polecam uczenia się Python, Ruby i Perl .. PHP nie ma pewne zalety dla internetowych programowania , ale po prostu nie jest przeznaczony do wiersza poleceń skryptów .. to na pewno wykonalne, to będzie po prostu nie być aż tak .. przyjemny)
lista muszli że Automator obsługuje w
/System/Library/Automator/Run\ Shell\ Script.action/Contents/Resources/Shells.plist
Możesz śledzić , aby dodać wpis dla/usr/bin/php. Możesz najpierw skopiować plik .action do ~/Library/Automator i zamiast tego pracować nad kopią.
Oczywiście łatwiej jest po prostu umieścić go w skrypcie bash, jak sugerowali inni.
Powyższe rozwiązanie dbr jest doskonałe, ale okazało się, że nie działa ono dla mnie, być może z powodu późniejszej zmiany w powłoce, wersji PHP lub OS (używam OS X 10.8). Po wielu drapaniach głowy odkryłem, że odpowiedzią jest cytowanie znacznika heredoc.
Przydatnym dodatkiem jest użycie odpowiedniej składni do przekazania argumentów do skryptu php. Umieszczenie wszystko razem, używam:
php -- "[email protected]" <<'EOF'
<?php
print_r($argv);
?>
EOF
- 1. Skrypt automatora do zmiany nazwy plików w systemie Mac OS X
- 2. /proc/uptime w systemie Mac OS X
- 3. Odinstalowywanie pakietów w systemie Mac OS X
- 4. JNotify w systemie Mac OS X?
- 5. Aktualizacje aplikacji w systemie Mac OS X
- 6. Jak wykonać skrypt powłoki z C w systemie Linux?
- 7. Polecenie powłoki w celu uzyskania adresu mac w OS X
- 8. Jak korzystać z katalogu/home w systemie Mac OS X
- 9. Znajdź najwyższy identyfikator użytkownika w systemie Mac OS X
- 10. Sposób cichej instalacji pliku pkg w systemie Mac OS X
- 11. Jak wczytać stronę zamiast kontynuować skrypt w debugerze Chrome w systemie Mac OS X?
- 12. Jak podłączyć przycisk do metody w systemie Mac OS X
- 13. Jak zaktualizować Numpy w systemie Mac OS X Snow Leopard?
- 14. Jak określić bernela jądra w systemie Mac OS X 10.6?
- 15. Jak uruchomić MariaDB przy starcie w systemie Mac OS X?
- 16. Jak znaleźć numer portu szeregowego w systemie Mac OS X?
- 17. Jak zablokować kursor wewnątrz okna w systemie Mac OS X?
- 18. Jak utworzyć wirtualny napęd CD w systemie Mac OS X
- 19. Jak wyliczyć woluminy w systemie Mac OS X?
- 20. Jak programowo utworzyć plik C w systemie Mac OS X?
- 21. Jak zainstalować nagłówki programów Python w systemie Mac OS X?
- 22. Jak wprowadzić znak funta szterlinga (£) do powłoki interaktywnej Pythona w systemie Mac OS X?
- 23. Jak wykryć bieżące ustawienia regionalne w systemie Mac OS X z powłoki
- 24. Mac OS X - uruchom skrypt powłoki z GUI na komputerze stacjonarnym
- 25. Jak skonfigurować libusb na Mac OS X?
- 26. Jak wykonać plik Java przez skrypt powłoki
- 27. Gdzie jest standardowa biblioteka C w systemie Mac OS X?
- 28. Statystyki operacji odczytu/zapisu dysku w systemie Mac OS X
- 29. POSIX Semafory w systemie Mac OS X: sem_timedwait alternatywa
- 30. Błąd libusb_claim_interface w systemie Mac OS X Mountain Lion
Aby dokonać tej pracy w Pythonie, używając domyślnego interpretera Twojego ENV, należy zmienić wyżej jednym łącznikiem: python - „$ @” << EOF „” – xref