(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:tid) op: assign_op.Equal rhs: {(DQ <'yes pipe head'>)} spids: [7] ) ] ) (command.ForEach iter_name: p iter_words: [{(${ Id.VSub_Name SSH_PROTOCOLS)}] do_arg_iter: F body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:lines) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {(${ Id.VSub_Name SSH)} {<-> ($ Id.VSub_DollarName '$p')} {<-F>} {($ Id.VSub_DollarName '$OBJ') <'/ssh_proxy'>} {<thishost>} {(SQ <'sh -c "while true;do echo yes;done | _POSIX2_VERSION=199209 head -2000"'>)} ) (command.Subshell child: (command.CommandList children: [ (command.Sentence child: (C {<sleep>} {<3>}) terminator: <Id.Op_Semi _> ) (C {<wc>} {<-l>}) ] ) ) ] negated: F ) ) } spids: [27] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '$?')} {<-ne>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<fail>} {(DQ <'yes|head test failed'>)}) (command.Sentence child: (C {<lines>} {<Id.Lit_Equals '='>} {<0>}) terminator: <Id.Op_Semi _> ) ] spids: [65 78] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName '$lines')} {<-ne>} {<2000>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<fail>} { (DQ <'yes|head returns '> ($ Id.VSub_DollarName '$lines') <' lines instead of 2000'> ) } ) ] spids: [99 112] ) ] ) ] ) ) ] )