此功能存在于我的用户的〜/ .bashrc中:
function rm()
{
ls $*
echo "rm?"
read ans
if [ "$ans" == 'y' ]; then
/bin/rm $*
fi
}
在需要用户运行的ksh脚本中,我有这样一行:
[[ "$KEEP" = "" ]] && \rm $FILE
虽然反斜杠转义了用户定义的别名,但是它不会阻止脚本运行具有相同名称的用户定义函数。结果,调用了我用户的rm()函数,而不是系统函数。
我发现了这个超级用户的问题和答案,但是解决方案仅适用于内置函数,而不适用于系统命令。
什么是最好的方法来执行rm命令而不是别名或函数?我是否必须指定rm的完整路径,并确保要正确执行的每个系统命令?有没有更好的办法?