They do the same if they succeed. However, there may be noticeable differences if they fail for any reason.
The first:
for ...; do
done >> file
This will redirect to the file, presumably after the loop has completed. However, this can happen when Bash decides to flush the buffer.
Imagine that after iteration number 3, something does not work: you cannot say what was saved in the file.
:
for ...; do
done
.
, 3 - : , .
:
(, puts, printf stdio.h C, cout << … ++, print ), : , ; , ( "" ), ( ). , .
, , :
, 500000 ( ).
: , , Bash , . , .