Wie verhindere ich, dass Bash einen eingebauten Befehl verwendet?

Ich versuche, ein Skript zu reparieren, das @ verwendecho, das ist der eingebaute Befehl anstelle des Befehls, wie kann ich das verhindern?

Ich weiß, ich kann/bin/echo, um die Verwendung des zu erzwingen, aber ich möchte den Pfad nicht fest codieren (aus Gründen der Portabilität).

Ich dachte mit etwas wie:

$ECHO=`which echo`
$ECHO -e "text\nhere"

aberwhich echo gibt Folgendes zurück: "echo: eingebauter Shell-Befehl".

Ich habe am Ende ein @ definieecho -Funktion, die @ verwendenv wie @Kenster empfiehlt. Auf diese Weise muss ich die Aufrufe nicht ändern, damit sie im Skript wiedergegeben werden.

echo() {
  env echo $*
}

# the function is called before the built-in command.
echo -en "text\nhere"

Antworten auf die Frage(4)

Ihre Antwort auf die Frage