我正在尝试编写脚本来检查文件是否存在。文件名由参数传递。该脚本正在检查当前目录中是否存在文件。
#!/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
语句消息。
这段代码有什么问题?
答案 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
检查所有这些条件。