Unix上找到一个文件,然后提示删除

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unix上找到一个文件,然后提示删除相关的知识,希望对你有一定的参考价值。

我目前正在学习Unix,并且在我要解决的书中遇到了一个问题。

我正在尝试编写一个脚本,要求用户输入文件名。然后,脚本需要检查文件是否存在。如果该文件不存在,则该脚本应显示一条错误消息,然后退出该脚本。如果文件存在,脚本应询问用户是否真的要删除该文件。如果答案是“是”或“ y”,则脚本应删除该文件。如果答案为否或n,则脚本应退出脚本。如果答案既不是肯定也不是否,则脚本应显示一条错误消息并退出脚本。

这是我到目前为止写的,但是遇到一些错误:

#!/bin/bash

file=$1

if [ -f $file ];
then
echo read -p  "File $file existes,do you want to delete y/n" delete
case $delete in
n)
   exit
y) rm $file echo "file deleted";;
else
echo "fie $file does not exist"
exit
fi

如果有人来解释我错了,将不胜感激

答案

我建议使用这种形式:

#!/bin/bash

file=$1

if [[ -f $file ]]; then
    read -p "File $file exists. Do you want to delete? [y/n] " delete
    if [[ $delete == [yY] ]]; then  ## Only delete the file if y or Y is pressed. Any other key would cancel it. It's safer this way.
        rm "$file" && echo "File deleted."  ## Only echo "File deleted." if it was actually deleted and no error has happened. rm probably would send its own error info if it fails.
    fi
else
    echo "File $file does not exist."
fi

此外,您也可以在提示中添加-n选项以仅接受一个键,而不再需要Enter键:

    read -n1 -p "File $file exists. Do you want to delete? [y/n] " delete

您在echo之前添加了read,而我删除了它。

以上是关于Unix上找到一个文件,然后提示删除的主要内容,如果未能解决你的问题,请参考以下文章

如何快速找到添加/删除的文件?

在GitHub上删除项目后,在IDEA上传项目依然提示project is already on github

磁盘被写保护了,看了一些方法,可是注册表上找到writeprotect,怎么办啊?

Linux/UNIX上安装Mysql

20个 Unix/Linux 命令技巧

桌面上的一个文件删不掉,提示说"文件正被另一个人或程序使用",怎么才能删掉?这是为啥?