Eu tenho este código para traduzir uma palavra de / para inglês / espanhol:
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
é de https://github.com/soimort/translate-shell/ )
Executar o script diretamente no Terminal (bash) funciona muito bem.
Mas quando eu tento usá-lo no Automator, recebo este erro:
/usr/local/bin/trans: line 5073: gawk: command not found
Corrida gawk
no Terminal também funciona bem.
ATUALIZAR : Graças ao solver abaixo, o roteiro final de trabalho para o 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" "$@"
grep
é fácil de consertar; substituirgrep x | awk '{y}'
comawk '/x/ {y}'
Respostas:
O padrão
PATH
passado para o Script Executar Shell açao no Automator é:Eu sempre adiciono um
PATH=...
, Onde...
é o realPATH
usado no Terminal, na parte superior do script Run Shell açao no Automator.Ou você tem que adicionar o nome do caminho totalmente qualificado de qualquer executável para a linha de comando que não está no padrão
PATH
passado para o Script Executar Shell açao no Automator.A última linha no
trans
roteiro égawk -f <(echo -E "$TRANS_PROGRAM") - "$@"
e a menosgawk
está no padrãoPATH
passou você precisará adicionar o local degawk
aoPATH
você passa para o script Run Shell açao no Automator ou adicione o nome de caminho totalmente qualificado aogawk
comando no final dotrans
roteiro .No uso do terminal
which gawk
para obter o caminho, por exemplo:Em
trans
, mudança:Para:
Ou no Script Executar Shell açao no Automator, por exemplo:
Ou use o
PATH
da saída deecho $PATH
no terminal.fonte
which gwak
mas o site não me permite alterar menos de 6 caracteres.