This works:
name="test.txt"
yap -q << % > $name
[experiment_yap],
exp1_min(brother,2).
%
This does not:
for i in 01 02 03 04 05
do
name="test.txt"
yap -q << % > $name
[experiment_yap],
exp1_min(brother,2).
%
done
I receive line 19: syntax error: unexpected end of file
It's not being in a loop that's significant here.
bash
doesn't really know or care about indentation -- to recognize the end of the heredoc the terminating string must be at the beginning of the line, which makes your loop look like: