On 16 May 2012 15:31, wrote: > The confusing part to me is why >[2] or >[3] or >[4] > (and so on) captures the stdout of the @{} block. > it doesn't: look closely at your commands. term% @{rfork e; echo hi} >[2]/env/hi; echo test; cat /env/hi hi test the echo hi is going to standard output, which is not captured. the >[2]/env/hi is creating an empty env variable in the parent shell scope (name space). echo test goes to standard output, and cat /env/hi prints the empty env variable on standard output.