Linux shell脚本删除/恢复/垃圾部分2

时间:2012-11-23 20:42:21

标签: bash shell

提前感谢您的任何帮助,这是课程作业,因此非常感谢您的进一步阅读/指示。

我前几天问了一个与我自己的删除/删除/恢复脚本有关的问题,我已经完成了删除和删除以及删除备份文本文件以供以后恢复使用。

然而,恢复脚本只是在控制台中停止,而不是给我错误。就像当我键入#〜/ Restore -n时,光标会跳到下一行而没有通常的#,我必须手动关闭它。同样没有-n选项。 -n选项应该要求恢复到的新位置,没有它应该恢复到文件的原始位置。  我会发布我的剧本,看看你们的想法。

#!/bin/bash
if [ "$1" == "-n" ]
then  cd ~/rubbish
  restore= grep $2 ~/store      
  filename= basename "$restore"
  echo "Type the files new location"
  read location
  location1 = "readlink -f $location"       
  mv -i $filename "$location1" /$filename       
else  cd ~/rubbish          
  restore= grep $2 ~/store      
  filename= basename "$restore"         
  mv -i $filename "$location1" $location            
fi

所以,〜/ rubbish是我自己创建的目录,充当回收站,〜/ store是我的文本文件,删除后删除文件的readlink详细信息。如有必要,我可以发布整个3个脚本吗?

非常感谢!

2 个答案:

答案 0 :(得分:2)

如果您致电~/Restore -n,则会转到if部分并执行grep $2 ~/store。由于没有参数$2,它将导致grep ~/store,它告诉grep在标准输入的输入中搜索“〜/ store”。

这就是你的脚本停止并等待输入的原因。

您可以测试第二个参数或将$2括在双引号中以确保grep获取正确数量的参数。更好的是,同时做两件事:1。测试第二个参数 2.用双引号括起$ 2。

更多要点:

  • 请勿在{{1​​}}
  • 周围添加空格
  • 将命令括在反引号中,如果你想捕获输出
  • 目录和文件名之间没有空格

所以,你应该写一下

=

我建议您查看bash info并按照“图书和资源”进行操作。

答案 1 :(得分:1)

我很久以前写过其中一篇,我今天仍在使用。我没有恢复脚本,因为我写了它以便您可以打开桌面垃圾桶,右键单击并选择“恢复”。换句话说,它遵循Linux“垃圾信息”标准。

http://wiki.linuxquestions.org/wiki/Scripting#KDE4_Command_Line_Trash_Can