(command.CommandList children: [ (command.ShAssignment pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:st) op:assign_op.Equal rhs:{(0)} spids:[4])] ) (command.ForEach iter_name: i iter_words: [{(0)} {(1)} {(2)} {(3)} {(4)} {(5)} {(6)} {(7)}] do_arg_iter: F body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(./test-spawn-pipe-main) (${ Id.VSub_Name EXEEXT)} {(./test-spawn-pipe-child) (${ Id.VSub_Name EXEEXT)} {($ Id.VSub_DollarName '$i')} ) (command.BraceGroup children: [ (command.Sentence child: (command.Simple words: [ {(echo)} {(test-spawn-pipe.sh) (Id.Lit_Other ':')} {(iteration)} {($ Id.VSub_DollarName '$i')} {(failed)} ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:63) fd: -1 arg_word: {(2)} ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:65) ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:st) op: assign_op.Equal rhs: {(1)} spids: [67] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:69) ) ] ) ] ) ] ) ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:75) arg_word: {($ Id.VSub_DollarName '$st')} ) ] )