Bash脚本:检查文件是否为空
时间:2019-05-19 01:25:33 来源:igfitidea点击:
在使用bash shell编程时,当我们需要读取一些文件内容时。
最好测试给定文件是否存在或是否为空。
这将保护脚本不会抛出错误。
本文将测试该文件是否存在以及该文件是否为空。
1. 检查文件是否为空
这个脚本将检查给定的文件是否为空。
按照下面的例子如果 /tmp/myfile.txt是一个空文件,那么它将显示输出为“文件为空”,否则,如果文件有一些内容,它将显示输出为“文件不为空”。
#!/bin/bash if [ -s /tmp/myfile.txt ] then echo "文件不为空" else echo "文件为空" fi
我们还可以将上面的脚本写成一行,如下所示。
#!/bin/bash [ -s /tmp/myfile.txt ] && echo "文件不为空" || echo "文件为空"
2. 检查文件是否存在且不是空的
下面的脚本将检查该文件是否存在以及该文件是否为空。
按照下面的例子如果 /tmp/myfile.txt不存在,脚本将输出显示为“文件不存在”,如果文件存在且为空文件,则输出显示为“文件存在但为空”,否则,如果文件存在且有内容,则输出显示为“文件存在但不为空”。
if [ -f /tmp/myfile.txt ] then if [ -s /tmp/myfile.txt ] then echo "文件存在但不为空" else echo "文件存在但为空" fi else echo "文件不存在" fi
3. 检查文件是否存在,并不是空的变量
这和2是一样的,除了这里的文件名保存在一个变量中。
#!/bin/bash FILENAME="/tmp/myfile.txt" if [ -f ${FILENAME} ] then if [ -s ${FILENAME} ] then echo "文件存在但不为空" else echo "文件存在但为空" fi else echo "文件不存在" fi