I have a bash script that makes a cURL request and writes the output to a file called resp.txt
. I need to create an exclusive lock so that I can write to that file and not worry about multiple users running the script and editing the text file at the same time.
Here is the code that I expect to lock the file, perform the request, and write to the text file:
(
flock -e 200
curl 'someurl' -H 'someHeader' > resp.txt
) 200>/home/user/ITS/resp.txt
Is this the correct way to go about this? My actual script is a bit longer than this, but it seems to break when I add the flock
syntax to the bash script. My understanding is that this creates a subshell that can write to the locked file. I'm just not sure if I need to add the file descriptor to the curl request like this:
curl 'someurl' -H 'someHeader' 200>resp.txt
If someone could explain how these file descriptors work and let me know if I am locking the file correctly that would be awesome!