4分钟
任务 4 其他辅助功能的编写
任务目的
前文的步骤已经实现了回收站核心功能,并替换了命令。还需要处理一些特殊场景,例如对rm
命令选项的处理(如rm -rf XXXX
)等。由于当前rm
命令指向的文件是/usr/bin
目录下的脚本文件,接下来的步骤需要对/usr/bin/rm.sh
文件进行编辑。
任务步骤
1.添加提示信息
最前端添加提示信息,通知用户现在已经提供了回收站功能。在Shell脚本最前端添加以下提示信息:
echo "#--Now use [/usr/bin/rm.sh] instead of [rm].Recycle bin provided."--#
echo "#--[.RECYCLEBIN] directory in the same path of the deleted file. "--#
2.处理命令选项
对rm
命令的选项进行处理,如rm -rf 123.txt
、rm -f
中的选项-rf
和-f
需要忽略掉。使用if
判断语句结合正则表达式实现。修改Shell脚本,将最前面对$FILE
文件的if
判断改为以下内容:
if [[ $FILE =~ ^(\-).* ]];then
continue
elif [ ! -w $FILE ];then
echo "Warning: File [$FILE] not exists or can't delete. Skip this file."
continue
fi
其中=~
用于匹配正则表达式。^(\-).*
表示以-
符号开头的字符串,后面有若干个其他任意字符(用.*
表示)。
3.保存文件
以上内容编写完毕后,保存文件并退出。
按ESC回到普通模式
:
wq
学员评价