Traducir script de shell no funciona en Automator


3

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"

( transes 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 gawken 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" "$@"

1
El uso inútil degrep es fácil de arreglar; reemplazar grep x | awk '{y}'conawk '/x/ {y}'
tripleee

Respuestas:


2

El valor predeterminado que se PATHpasa a la acción Ejecutar script de shell en Automator es:

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

Siempre agrego un PATH=..., donde ...está el real PATHutilizado 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 PATHpasado a la acción Ejecutar script de shell en Automator.


La última línea en el trans script es gawk -f <(echo -E "$TRANS_PROGRAM") - "$@"y, a menos que gawkesté en el PATHpaso predeterminado , deberá agregar la ubicación gawkal PATHpaso a la acción Ejecutar script de Shell en Automator, o agregar el nombre de ruta completo al gawkcomando al final del trans guión .

En Terminal, use which gawkpara obtener su ruta, por ejemplo:

which gawk
/usr/local/bin/gawk

En trans, cambio:

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

A:

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

O en la acción Ejecutar script de shell en Automator, por ejemplo:

PATH=$PATH:/usr/local/bin

O use el PATHde la salida de echo $PATHen Terminal.


¡Fantástico! ¡Gracias! Intenté corregir su error tipográfico, which gwakpero el sitio no me permite cambiar menos de 6 caracteres.
Dan

@ Ze'ev Todavía no he tomado café esta mañana, lo arreglé, gracias.
user3439894
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.