Sou novo em programação de scripts bash e estou tentando entender o código abaixo:
tmp_file=/tmp/tmp_file$$
mkfifo $tmp_file
echo "msg_A" >$tmp_file # blocks, since pipe is unbuffered and no one is reading from it
read msg <$tmp_file
echo $msg
tmp_file=/tmp/tmp_file$$
mkfifo $tmp_file
exec 7<>$tmp_file # add this line
echo "msg_A" >$tmp_file # now, the write operation won't block, why?
read msg <$tmp_file
echo $msg # msg_A is printed
Quero saber o que acontece exec 7<>$tmp_file
no exemplo de código acima e por que adicionar esta linha torna a operação de gravação não bloqueante?