Ich habe diesen Code, um ein Wort von/nach Englisch/Spanisch zu übersetzen:
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
ist von https://github.com/soimort/translate-shell/ )
Das Ausführen des Skripts direkt im Terminal (bash) funktioniert hervorragend.
Aber wenn ich versuche, es in Automator zu verwenden, erhalte ich diesen Fehler:
/usr/local/bin/trans: line 5073: gawk: command not found
Das Ausführen gawk
im Terminal funktioniert auch einwandfrei.
UPDATE : Dank des untenstehenden Lösers lautet das endgültige Arbeitsskript für den Automator:
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" "$@"
Der Standardwert PATH
, der an die Aktion Shell-Skript ausführen in Automator übergeben wird, ist:
/usr/bin:/bin:/usr/sbin:/sbin
Ich füge immer oben in der Aktion „Run Shell Script“ in Automator ein , PATH=...
wobei ...
das tatsächlich in Terminal verwendete ist .PATH
Oder Sie müssen den vollständig qualifizierten Pfadnamen einer beliebigen ausführbaren Datei zur Befehlszeile hinzufügen, die nicht standardmäßig an die AktionPATH
Shell-Skript ausführen in Automator übergeben wird.
Die letzte Zeile im trans
Skript ist gawk -f <(echo -E "$TRANS_PROGRAM") - "$@"
und sofern gawk
sie nicht standardmäßig PATH
übergeben wird, müssen Sie den Speicherort von zu hinzufügen, gawk
den Sie an die AktionPATH
„Shell-Skript ausführen“ in Automator übergeben , oder den vollständig qualifizierten Pfadnamen zum Befehl am Ende von hinzufügen Skript .gawk
trans
Verwenden Sie im Terminal, which gawk
um seinen Pfad zu erhalten, z. B.:
which gawk
/usr/local/bin/gawk
In trans
ändern:
gawk -f <(echo -E "$TRANS_PROGRAM") - "$@"
Zu:
/usr/local/bin/gawk -f <(echo -E "$TRANS_PROGRAM") - "$@"
Oder in der Aktion Run Shell Script in Automator, zB:
PATH=$PATH:/usr/local/bin
Oder verwenden Sie die PATH
aus der Ausgabe von echo $PATH
in Terminal.
which gwak
, aber die Website lässt mich nicht weniger als 6 Zeichen ändern.
dreifach
grep
ist leicht zu beheben;grep x | awk '{y}'
durch ersetzenawk '/x/ {y}'