¿Cómo evito que bash use un comando incorporado?
Estoy tratando de arreglar un script que usaecho
, que está usando el comando incorporado en lugar del comando, ¿cómo puedo evitar eso?
Se que puedo hacer/bin/echo
para forzar el uso de eso, pero no me gustaría codificar la ruta (para portabilidad).
Pensé usar algo como:
$ECHO=`which echo`
$ECHO -e "text\nhere"
perowhich echo
devuelve: "echo: comando incorporado de shell".
Terminé definiendo unecho
función que usaenv
como @Kenster recomienda. De esta manera, no necesito modificar las llamadas para que se repitan en el script.
echo() {
env echo $*
}
# the function is called before the built-in command.
echo -en "text\nhere"