gpt4 book ai didi

bash - shell脚本中是否有任何互斥/信号量机制?

转载 作者:行者123 更新时间:2023-11-29 08:43:04 25 4
gpt4 key购买 nike

我正在寻找 shell 脚本中的互斥/信号量/并发机制。考虑以下情况:除非“a”用户不关闭共享文件,“b”用户应该不能打开/更新它。我只是想知道如何在 shell 脚本中实现互斥量、信号量、关键部分等。

在 shell 脚本中实现锁定机制 [文件级别] 的最简单方法是什么?

最佳答案

BashFAQshellter 指出有一些很好的例子。基本思想(我将其移动到此处以便页面是独立的)是使用同时测试和设置的操作:mkdir

如果目录存在,mkdir 将失败,如果不存在,将创建它。这是一个原子操作,你可以像这样使用它在你的 shell 脚本中做一个互斥体(来自上面的 BashFAQ)

# Bourne
lockdir=/tmp/myscript.lock
if mkdir "$lockdir"
then # directory did not exist, but was created successfully
echo >&2 "successfully acquired lock: $lockdir"
# continue script
else # failed to create the directory, presumably because it already exists
echo >&2 "cannot acquire lock, giving up on $lockdir"
exit 0
fi

点击链接了解有关清理和其他项目的更多详细信息。

关于bash - shell脚本中是否有任何互斥/信号量机制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6870221/

25 4 0