我经常使用bash shell编程工作,当你需要判断一些文件的内容时,这是很好的测试定文件是存在,文件是空的方法。本文将帮助你测试文件是否存在和文件是否为空。
1. if 检查文件是否为 :
这个脚本会检查给定文件是否为空。按照下面的例子,如果
/tmp/myfile.txt是一个空文件,那么它会显示输出为“File empty”,否则,如果文件中有一些内容会显示输出为“File not empty”。
#!/bin/bash
if [ -s /tmp/myfile.txt ]
then
echo "File not empty"
else
echo "File empty"
fi
和上述相同的,if 条件可以是单行书写,如下。
#!/bin/bash
[ -s /tmp/myfile.txt ] && echo "File not empty" || echo "File empty"
2. if 检查文件是否存在:
下面的脚本会检查文件是否存在以及文件是否为空。按照下面的例子,如果它不存在
/tmp/myfile.txt,脚本将显示输出为“File not exists”,如果文件存在,并且是一个空文件,将输出为“File exists but empty”,否则,如果文件存在已在它的一些内容将显示为“File exists and not empty”的输出。
if [ -f /tmp/myfile.txt ]
then
if [ -s /tmp/myfile.txt ]
then
echo "File exists and not empty"
else
echo "File exists but empty"
fi
else
echo "File not exists"
fi
3. if 检查文件是否存在,使用变量:
这里除了文件名保存在一个变量中,其它 和#2 步是一样的。
#!/bin/bash
FILENAME="/tmp/myfile.txt"
if [ -f ${FILENAME} ]
then
if [ -s ${FILENAME} ]
then
echo "File exists and not empty"
else
echo "File exists but empty"
fi
else
echo "File not exists"
fi