Tengo este código para traducir una palabra del / al 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 el script directamente en Terminal (bash) funciona muy bien.
Pero cuando trato de usarlo en Automator, aparece este error:
/usr/local/bin/trans: line 5073: gawk: command not found
Correr gawk
en la Terminal también funciona bien.
ACTUALIZACIÓN : Gracias al solucionador a continuación, el script de trabajo final para el automatizador 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" "$@"
grep
es fácil de arreglar; reemplazargrep x | awk '{y}'
conawk '/x/ {y}'
Respuestas:
El valor predeterminado que se
PATH
pasa a la acción Ejecutar script de shell en Automator es:Siempre agrego un
PATH=...
, donde...
está el realPATH
utilizado en la Terminal, a la parte superior de la acción Ejecutar script de Shell en Automator.O bien, debe agregar el nombre de ruta completo de cualquier ejecutable a la línea de comando que no se encuentra en el valor predeterminado
PATH
pasado a la acción Ejecutar script de shell en Automator.La última línea en el
trans
script esgawk -f <(echo -E "$TRANS_PROGRAM") - "$@"
y, a menos quegawk
esté en elPATH
paso predeterminado , deberá agregar la ubicacióngawk
alPATH
paso a la acción Ejecutar script de Shell en Automator, o agregar el nombre de ruta completo algawk
comando al final deltrans
guión .En Terminal, use
which gawk
para obtener su ruta, por ejemplo:En
trans
, cambio:A:
O en la acción Ejecutar script de shell en Automator, por ejemplo:
O use el
PATH
de la salida deecho $PATH
en Terminal.fuente
which gwak
pero el sitio no me permite cambiar menos de 6 caracteres.