Ця функція існує в ~ / .bashrc мого користувача:
function rm()
{
ls $*
echo "rm?"
read ans
if [ "$ans" == 'y' ]; then
/bin/rm $*
fi
}
У моєму скрипті ksh, який потрібно запустити користувачам, у мене є такий рядок:
[[ "$KEEP" = "" ]] && \rm $FILE
Поки зворотна косої риски уникає визначених користувачем псевдонімів, це не зупиняє сценарій запускати визначені користувачем функції з тим самим іменем. Як результат, функція rm () мого користувача викликається замість системної функції.
Я знайшов це питання та відповідь щодо суперпользователя, але роздільна здатність стосується лише вбудованої функції, а не системної команди.
Що найкраще застосовувати команду rm від виклику, а не псевдоніму чи функції? Потрібно вказати повний шлях до rm та кожну системну команду, яку я хочу переконатися, виконана правильно? Чи є кращий спосіб?