When a loop is traced, the DO clause itself is traced on
every iteration of the loop.
You can retrieve the trace actions currently in effect by
using the TRACE built-in function.
The trace output of commands traced before execution always
contains the final value of the command, that is, the
string passed to the environment, and the clause generating it.
Trace actions are automatically saved across subroutine,
function, and method calls. See
Section 2.3, “CALL” for more details.