提前感谢您的任何帮助,这是课程作业,因此非常感谢您的进一步阅读/指示。
我前几天问了一个与我自己的删除/删除/恢复脚本有关的问题,我已经完成了删除和删除以及删除备份文本文件以供以后恢复使用。
然而,恢复脚本只是在控制台中停止,而不是给我错误。就像当我键入#〜/ 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个脚本吗?
非常感谢!
答案 0 :(得分:2)
如果您致电~/Restore -n
,则会转到if
部分并执行grep $2 ~/store
。由于没有参数$2
,它将导致grep ~/store
,它告诉grep在标准输入的输入中搜索“〜/ store”。
这就是你的脚本停止并等待输入的原因。
您可以测试第二个参数或将$2
括在双引号中以确保grep获取正确数量的参数。更好的是,同时做两件事:1。测试第二个参数和 2.用双引号括起$ 2。
更多要点:
所以,你应该写一下
=
我建议您查看bash info并按照“图书和资源”进行操作。
答案 1 :(得分:1)
我很久以前写过其中一篇,我今天仍在使用。我没有恢复脚本,因为我写了它以便您可以打开桌面垃圾桶,右键单击并选择“恢复”。换句话说,它遵循Linux“垃圾信息”标准。
http://wiki.linuxquestions.org/wiki/Scripting#KDE4_Command_Line_Trash_Can