Ta funkcja istnieje w ~ / .bashrc jednego z moich użytkowników:
function rm()
{
ls $*
echo "rm?"
read ans
if [ "$ans" == 'y' ]; then
/bin/rm $*
fi
}
W moim skrypcie ksh, który muszą uruchomić użytkownicy, mam taką linię:
[[ "$KEEP" = "" ]] && \rm $FILE
Chociaż ukośnik odwraca aliasy zdefiniowane przez użytkownika, nie powstrzymuje skryptu przed uruchamianiem funkcji zdefiniowanych przez użytkownika o tej samej nazwie. W rezultacie zamiast funkcji systemowej wywoływana jest funkcja rm () mojego użytkownika.
Znalazłem to pytanie administratora pytanie i odpowiedź, ale rozdzielczość odnosi się tylko do funkcji wbudowanej, a nie polecenia systemu.
Co najlepiej wymusić wywołanie polecenia rm, a nie alias lub funkcję? Czy muszę podać pełną ścieżkę do rm i każdą komendę systemową, którą chcę zapewnić, aby została wykonana poprawnie? Czy jest lepszy sposób?