gpt4 book ai didi

bash - Linux 上的文件锁

转载 作者:行者123 更新时间:2023-11-29 09:25:12 24 4
gpt4 key购买 nike

所以有 2 个脚本:A 和 B,都想写入同一个文件。两个脚本都可能同时写入文件。我怎样才能锁定文件?当脚本 A 正在写入文件时,脚本 B 必须等到文件被解锁。

我试过这个:

while [ -f $LOCK ]
do
sleep 0.1
done
touch $LOCK
#action
rm $LOCK

上面脚本的问题可能是,A 和 B 都在同时寻找 $LOCK,但他们找不到开始写入。有帮助吗?

最佳答案

另一种可能是:

echo $$ >> lockfile
locked_by=$(head -1 lockfile)
if [ $$ = $locked_by ] ; then
echo "Hurray! the file is mine!"
#do stuff
rm lockfile
else
echo "$locked_by has the lock, sorry"
fi

在大多数情况下,echo $$ >> lockfile 是足够原子的。

关于bash - Linux 上的文件锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45677310/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com