Голый со мной, поскольку я новичок в этом flock
инструменте, и я не использовал файловые дескрипторы, насколько я знаю.
У меня есть скрипт bash, который делает запрос cURL и записывает вывод в файл с именем resp.txt
. Мне нужно создать эксклюзивную блокировку, чтобы я мог писать в этот файл и не беспокоиться о том, что несколько пользователей одновременно запускают сценарий и редактируют текстовый файл.
Вот код, который я ожидаю, чтобы заблокировать файл, выполнить запрос и записать в текстовый файл:
(
flock -e 200
curl 'someurl' -H 'someHeader' > resp.txt
) 200>/home/user/ITS/resp.txt
Это правильный путь? Мой настоящий скрипт немного длиннее этого, но, кажется, он ломается, когда я добавляю flock
синтаксис в скрипт bash.
Если бы кто-то мог объяснить, как работают эти файловые дескрипторы, и сообщить мне, правильно ли я блокирую файл, это было бы здорово!
flock
работает? Я новичок в дескрипторах файлов: /curl
все еще можете записать в файл. Обратите внимание, что это может быть небезопасно (или может даже не работать) с NFS, но не используйте сценарий оболочки для блокировки файлов через NFS. С помощьюbash
вы также можете открыть файл для чтения и записи,200<> resp.txt
но это ничего не должно изменить.