晚上好
我有一项任务要完成并尝试以下但不起作用
#!/bin/bash
FPath=$(grep $1 $HOME/.restore.info | cut -d":" -f2)
FName=$(grep $1 $HOME/.restore.info | cut -d":" -f1)
if [ $# -eq 0 ]
then
echo "No input detected"
exit $?
elif [ "$FName" = $1 ]
then
echo " Match found and restored to its original location"
mv ~/deleted/$1 $FPath
else
echo "File does not exist"
exit $?
fi
它应该将特定文件夹中的已删除文件还原到其原始位置
然而,它仍然说文件不存在,即使该文件存在。
我还需要为现有文件创建一个案例,如果用户选择覆盖现有文件。请帮我这个
感谢您的帮助
答案 0 :(得分:0)
$FPath
确实为0, $FName
和$#
将进入无限等待状态,这意味着它永远不会到达其余的行。
如果你有这个照顾:
忽略你的grep中的case:
grep -i $1 $HOME/.restore.info | cut -d":" -f2
如果$ 1有多个条目,则捕获grep中的第一个匹配项
grep -i $1 $HOME/.restore.info | cut -d":" -f2 | head -1