Como evito que o bash use um comando interno?
Estou tentando corrigir um script que usaecho
, que está usando o comando embutido em vez do comando, como posso evitar isso?
Eu sei que posso fazer/bin/echo
para forçar o uso disso, mas eu não gostaria de codificar o caminho (para portabilidade).
Eu pensei em usar algo como:
$ECHO=`which echo`
$ECHO -e "text\nhere"
maswhich echo
retorna: "eco: comando interno do shell".
Acabei definindo umecho
função que usaenv
como a @Kenster recomenda. Dessa forma, não preciso modificar as chamadas para ecoar no script.
echo() {
env echo $*
}
# the function is called before the built-in command.
echo -en "text\nhere"