3 votes

La traduction du shell script ne fonctionne pas dans Automator

J'ai ce code pour traduire un mot de/en anglais/espagnol :

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 vient de https://github.com/soimort/translate-shell/ )

L'exécution du script directement dans Terminal (bash) fonctionne très bien.

Mais lorsque j'essaie de l'utiliser dans Automator, j'obtiens cette erreur :

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

Running gawk dans le Terminal fonctionne également bien.


UPDATE : Grâce au solveur ci-dessous, le script final fonctionnel pour l'automate est :

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 Points 52496

La valeur par défaut PATH transmis au Shell d'exécution script action dans Automator est :

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

J'ajoute toujours un PATH=...... est l'effectif PATH utilisé dans le Terminal, en haut de l'écran Exécuter le shell script. action dans Automator.

Ou bien vous devez ajouter à la ligne de commande le chemin d'accès complet de tout exécutable qui n'est pas dans la liste par défaut. PATH transmis au Shell d'exécution script action dans Automator.


La dernière ligne de la trans script est gawk -f <(echo -E "$TRANS_PROGRAM") - "$@" et à moins que gawk est dans la version par défaut PATH passé vous devrez ajouter l'emplacement de gawk à la PATH que vous passez à la commande Run Shell script. action dans Automator, ou ajoutez le nom de chemin d'accès complet à la commande gawk à la fin du fichier trans script .

Utilisation en phase terminale which gawk pour obtenir son chemin, par exemple :

which gawk
/usr/local/bin/gawk

Sur trans , changement :

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

A :

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

Ou dans le Shell d'exécution script action dans Automator, par exemple :

PATH=$PATH:/usr/local/bin

Ou utilisez le PATH à partir de la sortie de echo $PATH dans le terminal.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X