Hàm này tồn tại trong một trong những người dùng của tôi '/ / .bashrc:
function rm()
{
ls $*
echo "rm?"
read ans
if [ "$ans" == 'y' ]; then
/bin/rm $*
fi
}
Trong tập lệnh ksh của tôi mà người dùng bắt buộc phải chạy, tôi có một dòng như thế này:
[[ "$KEEP" = "" ]] && \rm $FILE
Trong khi dấu gạch chéo ngược thoát khỏi các bí danh do người dùng định nghĩa, nó không ngăn tập lệnh chạy các hàm do người dùng xác định có cùng tên. Kết quả là, hàm rm () của người dùng của tôi được gọi thay vì hàm hệ thống.
Tôi tìm thấy câu hỏi và câu trả lời cho câu hỏi siêu người dùng này , nhưng độ phân giải chỉ áp dụng cho hàm dựng sẵn, không phải lệnh hệ thống.
Điều gì là tốt nhất để thực thi lệnh rm khỏi bị gọi, và không phải là bí danh hoặc chức năng? Tôi phải chỉ định đường dẫn đầy đủ đến rm và mọi lệnh hệ thống mà tôi muốn đảm bảo được thực thi chính xác? Có cách nào tốt hơn?