Bash-如何在循环中检查文件是否为空

时间:2017-10-25 09:06:34

标签: bash shell

我需要检查Bash文件是否为空,

如果它是空的,请继续跟踪他,直到写入内容为止。

如果有人写入内容,则将其回显到屏幕并停止检查文件内容。

for [ -s diff.txt ]; do
echo "file is empty - keep checking it "
done
echo "file is not empty "
cat  diff.txt 

1 个答案:

答案 0 :(得分:3)

为什么不使用while

while ! [ -s diff.txt ]; do
    echo "file is empty - keep checking it "
    sleep 1 # throttle the check
done
echo "file is not empty "
cat  diff.txt

只要! [ -s diff.txt ]为真,循环就会运行。如果您愿意,可以使用until代替while并删除否定(!)。