我有一个 bash 脚本,它发出一个 cURL 请求并将输出写入一个名为resp.txt
. 我需要创建一个独占锁,以便我可以写入该文件,而不必担心多个用户同时运行脚本和编辑文本文件。
这是我希望锁定文件、执行请求并写入文本文件的代码:
(
flock -e 200
curl 'someurl' -H 'someHeader' > resp.txt
) 200>/home/user/ITS/resp.txt
Run Code Online (Sandbox Code Playgroud)
这是解决这个问题的正确方法吗?我的实际脚本比这长一点,但是当我将flock
语法添加到 bash 脚本时,它似乎会中断。
如果有人能解释这些文件描述符是如何工作的,并让我知道我是否正确锁定了文件,那就太棒了!