Как мне запретить bash использовать встроенную команду?
Я пытаюсь исправить сценарий, который используетecho
, то есть с помощью встроенной команды вместо команды, как я могу предотвратить это?
Я знаю, что могу сделать/bin/echo
для принудительного использования этого, но я не хотел бы жестко закодировать путь (для переносимости).
Я думал, используя что-то как:
$ECHO=`which echo`
$ECHO -e "text\nhere"
ноwhich echo
возвращает: "echo: встроенная команда оболочки".
В итоге я определилecho
функция, которая используетenv
как рекомендует @Kenster. Таким образом, мне не нужно изменять вызовы echo в скрипте.
echo() {
env echo $*
}
# the function is called before the built-in command.
echo -en "text\nhere"