bash脚本 - 检查文件是否存在,文件是否为空

我经常使用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
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏