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

我正在寻找shell script mutex / semaphore / concurrency机制。 考虑以下情况:除非“a”用户不closures共享文件,否则“b”用户不能打开/更新它。 我只是想知道如何在shell脚本中实现mutexsemaphorecritical sections机制。

还有一个问题:在shell scripting实现locking mechanism [文件级别]的最简单方法是什么?

有关讨论Bash中的文件锁定,请参见BashFAQ和ProcessManagment 。

将您的问题标记为仅限于可以帮助您的人数。 你可能想要添加unix,ksh,bash。

SO上已经有很多这方面的问题/答案

我希望这有帮助。

shellster提到的BashFAQ有一些很好的例子。 我在这里移动的基本思想是让页面自成一体,就是使用一个同时进行测试和设置的操作: 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 

请按照链接了解清理和其他项目的更多细节。