'''[Script] Substitution''' is the more apt term for [Dodekalogue%|%Command Substitution], since entire scripts, not just individual commands, can be contained in brackets. The result of the script is the result of the final command. A new stack frame is not created, so using `[return]` or `[break]` or the like will cause the caller to return, etc. ** Recursion ** [PYK] 2019-02-12: Script substitution can be recursive. Everything happens at the same level, as no additional [level%|%levles] are created: ====== puts [ set n 10 set a { puts $n expr {[incr n -1]? [try $a] : {liftoff}} } try $a ] ====== <> Syntax