(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:tid) op: assign_op.Equal rhs: {(DQ <'stderr data transfer'>)} spids: [7] ) ] ) (command.ForEach iter_name: n iter_words: [{(SQ )} {<-n>}] do_arg_iter: F body: (command.DoGroup children: [ (command.ForEach iter_name: p iter_words: [{(${ Id.VSub_Name SSH_PROTOCOLS)}] do_arg_iter: F body: (command.DoGroup children: [ (C {<verbose>} { (DQ <'test '> ($ Id.VSub_DollarName '$tid') <': proto '> ($ Id.VSub_DollarName '$p') <' ('> ($ Id.VSub_DollarName '$n') <')'> ) } ) (command.Simple words: [ {(${ Id.VSub_Name SSH)} {($ Id.VSub_DollarName '$n')} {<-> ($ Id.VSub_DollarName '$p')} {<-F>} {($ Id.VSub_DollarName '$OBJ') <'/ssh_proxy'>} {<otherhost>} {<exec>} {<sh>} {<-c>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''>) (DQ <'exec > /dev/null; sleep 3; cat '> (${ Id.VSub_Name DATA) <' 1>&2 '> ($ Id.VSub_DollarName '$s') ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''>) } ] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {(${ Id.VSub_Name COPY)} ) ] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:r) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [98] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName '$r')} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<fail>} {(DQ <'ssh failed with exit code '> ($ Id.VSub_DollarName '$r'))} ) ] spids: [102 115] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<cmp>} {(${ Id.VSub_Name DATA)} {(${ Id.VSub_Name COPY)}) (C {<fail>} {(DQ <'stderr corrupt'>)}) ] ) (C {<rm>} {<-f>} {(${ Id.VSub_Name COPY)}) (command.Simple words: [ {(${ Id.VSub_Name SSH)} {($ Id.VSub_DollarName '$n')} {<-> ($ Id.VSub_DollarName '$p')} {<-F>} {($ Id.VSub_DollarName '$OBJ') <'/ssh_proxy'>} {<otherhost>} {<exec>} {<sh>} {<-c>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''>) (DQ <'echo a; exec > /dev/null; sleep 3; cat '> (${ Id.VSub_Name DATA) <' 1>&2 '> ($ Id.VSub_DollarName '$s') ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''>) } ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {(${ Id.VSub_Name COPY)} ) ] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:r) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [206] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName '$r')} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<fail>} {(DQ <'ssh failed with exit code '> ($ Id.VSub_DollarName '$r'))} ) ] spids: [210 223] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<cmp>} {(${ Id.VSub_Name DATA)} {(${ Id.VSub_Name COPY)}) (C {<fail>} {(DQ <'stderr corrupt'>)}) ] ) (C {<rm>} {<-f>} {(${ Id.VSub_Name COPY)}) ] ) ) ] ) ) ] )