A variável global em um processo não será atualizada no outro. Daí um arquivo externo poderia ser usado. Eu terei algo assim (não verificado quanto à precisão).
delete_log()
{
touch /tmp/$1
if [ -e $status_file1 -a -e $status_file2 ]
then
rm log.txt
else
echo log >> log.txt
fi
}
f1()
{
...
delete_log $1
}
f2()
{
...
delete_log $1
}
f1 fork1.done &
f2 fork2.done &