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..