3 votos

Traducir shell script no funciona dentro de Automator

Tengo este código para traducir una palabra de/a inglés/español:

S=`/usr/local/bin/trans -b -id -no-ansi "$a" | grep Code | awk '{print $2}'`
if [ "$S" = "en" ]; then T=es; else T=en; fi
/usr/local/bin/trans -b :"$T" "$a"

(trans es de https://github.com/soimort/translate-shell/)

Ejecutar la secuencia de comandos directamente en el Terminal (bash) funciona muy bien.

Pero cuando trato de usarlo en Automator, me sale este error:

/usr/local/bin/trans: line 5073: gawk: command not found

Ejecución gawk en la Terminal también funciona bien.


ACTUALIZACIÓN: Gracias a solver a continuación, el trabajo final de script de automator es:

PATH=$PATH:/usr/local/bin
S=`/usr/local/bin/trans -b -id -no-ansi "$@" | grep Code | awk '{print $2}'`
if [ "$S" = "en" ]; then T=es; else T=en; fi
/usr/local/bin/trans -b :"$T" "$@"

3voto

user3439894 Puntos 5883

El valor predeterminado PATH pasa al Ejecutar el Shell de Comandos de acción de Automator es:

/usr/bin:/bin:/usr/sbin:/sbin

Yo siempre agregar un PATH=..., donde ... es el PATH utilizado en la Terminal, a la parte superior de la carrera del intérprete de Comandos de acción de Automator.

O usted tiene que agregar el nombre completo de la ruta de los ejecutables de la línea de comandos que no está en el valor predeterminado PATH pasa al Ejecutar el Shell de Comandos de acción de Automator.


La última línea en la trans script es gawk -f <(echo -E "$TRANS_PROGRAM") - "$@" y menos gawk está en el valor predeterminado PATH pasado usted necesitará agregar la ubicación de gawk a la PATH pasa al Ejecutar el Shell de Comandos de acción de Automator, o agregar el nombre completo de la ruta a la gawk comando al final de la trans script.

En la Terminal de uso which gawk para obtener su ruta, por ejemplo:

which gawk
/usr/local/bin/gawk

En transcambiar:

gawk -f <(echo -E "$TRANS_PROGRAM") - "$@"

A:

/usr/local/bin/gawk -f <(echo -E "$TRANS_PROGRAM") - "$@"

O en la carrera del intérprete de Comandos de acción de Automator, por ejemplo:

PATH=$PATH:/usr/local/bin

O el uso de la PATH de la salida de la echo $PATH en la 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