3 votos

Los comandos de Shell funcionan en el Terminal pero no en el servicio Automator

Trato de implementar estos dos comandos muy simples en un servicio de Automator para ser ejecutado por un cortocircuito del teclado (toma una captura de pantalla y la OCR):

screencapture -i /tmp/tesseract.png
tesseract /tmp/tesseract.png stdout|tr -d \\f|pbcopy

Esto funciona muy bien cuando ejecuto estos comandos en la Terminal, pero no cuando lo convierto en un servicio de Automator (lo siento, esto está en alemán). Automator window No lo entiendo: ¿Por qué funciona en un caso y no en el otro? ¿Tiene algo que ver con el teseracto?

3voto

user3439894 Puntos 5883

Cualquier ejecutable que no está dentro del PATH pasado a la Ejecutar Shell script acción que es /usr/bin:/bin:/usr/sbin:/sbin debe utilizar el nombre de ruta completamente calificado de la ejecutable .

En este caso, por ejemplo /path/to/tesseract

Deberías poder obtener su camino en Terminal utilizando:

which tesseract

Como tesseract no es un defecto de MacOS Puede ser en /usr/local/bin/ Sin embargo which tesseract debe informar de su nombre de ruta completamente calificado .


En lugar de utilizar el nombre de ruta completamente calificado o junto con, también puede añadir un PATH declaración a la parte superior de la Ejecutar Shell script acción por ejemplo, para un bash shell :

PATH="${PATH}:/usr/local/bin/"

También puedes sustituir todo lo que está a la derecha del = para lo que la salida en Terminal Por ejemplo echo $PATH es. Entonces el Ejecutar Shell script acción tiene el mismo PATH como Terminal .

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X