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.txtrm -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