首页 > shell 中,如何判断一个文件 已经写 结束?

shell 中,如何判断一个文件 已经写 结束?

shell 中,如何判断一个文件 已经写 结束?


文件结束符EOF啦。http://cwtea.blog.51cto.com/4500217/866347


通过flock命令来判断,如果一个文件正被另一个程序正在写入,会有LOCK_EX 独占锁。
Shell通过试图加锁是否成功来判断一个文件是否被锁定,简单的Shell(test.sh)如下:

    #!/bin/bash
    RES=`flock -x -n /tmp/testfile -c "echo ok"`
    if [ "$RES" = "ok" ];then
    echo "write over!"
    else
    echo "writing.."
    fi

通过这个脚本来模拟被锁定的情况

    flock -x /tmp/testfile -c "sleep 10"&

正常情况下运行test.sh ,输出 write over!
运行模拟锁定脚本时再运行test.sh ,输出 writing..

【热门文章】
【热门文章】