脚本检查文件存在

时间:2018-03-31 18:10:46

标签: linux bash

我正在尝试编写脚本来检查文件是否存在。文件名由参数传递。该脚本正在检查当前目录中是否存在文件。

#!/bin/bash

tmp=$(find $1)
failure="find: ‘$1‘: No such file or directory"

if [ "$tmp" != "$failure" ]; then
        echo "file exists"
else
        echo "file not exists"
fi

我正在创建两个变量。第一个包含find命令的结果,第二个包含find命令的失败消息。在if语句中,我正在比较这些变量。

即使文件存在,我也总是收到else语句消息。 这段代码有什么问题?

1 个答案:

答案 0 :(得分:2)

如果您的文件本身位于当前路径中,则无需使用find,以下内容可能对您有帮助。

#!/bin/bash
filename=$1
if [[ -f "$filename" ]]; then
        echo "file exists"
else
        echo "file does not exists"
fi

然后将脚本作为script.ksh file_name运行。如果您需要验证文件是否存在且是否有一些大小,请在上面的代码中将-f更改为-s

你也可以man test检查所有这些条件。