Bash脚本-测试文件是否存在

Bash脚本-测试文件是否存在

如何创建一个脚本来检查提供的文件是否存在,如果不存在,则创建一条错误消息。我有以下代码,但它不起作用:

#!/bin/bash
echo "enter file name:"
read source
file= $source
if [ -f "$file" ] && find "$file" | grep -q .
then 
    echo "the file exists."
else
    echo "the file does not exist."
fi

答案1

我不确定你的 && find 语句在做什么...尝试这样:

#!/bin/bash
read -p "enter file name: " source
file=$source
if [[ -f "$file" ]]; then 
    echo "the file exists."
else
    echo "the file does not exist."
fi

编辑

另外我刚刚注意到你有一个空间是file= $source行不通的。它需要是file=$source

编辑2

我猜 find 部分应该搜索该文件,以防它不在当前目录中?在这种情况下,你可以这样做(这是一个草率的脚本,我想不出使用它的好理由):

#!/bin/bash
read -p "enter file name: " source
file=$(find / -type f -name "$source" 2> /dev/null | head -n1)
if [[ -f "$file" ]]; then 
    echo "the file exists."
else
    echo "the file does not exist."
fi

相关内容