Isso não está correto porque quando você executa ( flock -e 200; ... ) 200> file
, você está truncar o arquivo file
antes para obter o bloqueio exclusivo. Eu acho que você deveria fazer:
touch resp.txt
(
flock -e 200
curl 'someurl' -H 'someHeader' > resp.txt
) 200< resp.txt
para colocar o bloqueio no arquivo aberto como somente leitura.
Nota. Algumas camadas não suportam descritores de arquivo maiores que 9. Além disso, o descritor de arquivo codificado pode já estar sendo usado. Com shells avançados (bash, ksh93, zsh), o seguinte pode ser feito:
touch resp.txt
(
unset foo
exec {foo}< resp.txt
flock -e $foo
curl 'someurl' -H 'someHeader' > resp.txt
)