Diese Funktion existiert in einem der ~ / .bashrc meiner Benutzer:
function rm()
{
ls $*
echo "rm?"
read ans
if [ "$ans" == 'y' ]; then
/bin/rm $*
fi
}
In meinem ksh-Skript, das Benutzer ausführen müssen, habe ich eine Zeile wie die folgende:
[[ "$KEEP" = "" ]] && \rm $FILE
Während der umgekehrte Schrägstrich benutzerdefinierte Aliase übergeht, wird das Skript nicht daran gehindert, benutzerdefinierte Funktionen mit demselben Namen auszuführen. Infolgedessen wird die Funktion rm () meines Benutzers anstelle der Systemfunktion aufgerufen.
Ich habe diese Superuser-Frage, Frage & Antwort, gefunden, aber die Auflösung bezieht sich nur auf eine eingebaute Funktion, nicht auf einen Systembefehl.
Was ist das Beste, um den Aufruf des Befehls rm zu erzwingen und nicht einen Alias oder eine Funktion? Muss ich den vollständigen Pfad zu rm und jeden Systembefehl angeben, der ordnungsgemäß ausgeführt werden soll? Gibt es einen besseren Weg?