(CommandList children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:tid) op:Equal rhs:{(DQ ('yes pipe head'))} spids:[7])] spids: [7] ) (ForEach iter_name: p iter_words: [{(${ VSub_Name SSH_PROTOCOLS)}] do_arg_iter: False body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:lines) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(${ VSub_Name SSH)} {(-) ($ VSub_Name '$p')} {(-F)} {($ VSub_Name '$OBJ') (/ssh_proxy)} {(thishost)} {(SQ <'sh -c "while true;do echo yes;done | _POSIX2_VERSION=199209 head -2000"'>)} ) (Subshell child: (CommandList children: [ (Sentence child: (C {(sleep)} {(3)}) terminator: <Op_Semi ';'> ) (C {(wc)} {(-l)}) ] ) spids: [49 59] ) ] negated: False ) ] ) left_token: <Left_Backtick '`'> spids: [28 60] ) } spids: [27] ) ] spids: [27] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_QMark '$?')} {(-ne)} {(0)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(fail)} {(DQ ('yes|head test failed'))}) (Sentence child: (C {(lines)} {(Lit_Other '=')} {(0)}) terminator: <Op_Semi ';'> ) ] spids: [-1 76] ) ] spids: [-1 94] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Name '$lines')} {(-ne)} {(2000)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(fail)} {(DQ ('yes|head returns ') ($ VSub_Name '$lines') (' lines instead of 2000'))} ) ] spids: [-1 110] ) ] spids: [-1 122] ) ] spids: [24 124] ) spids: [18 22] ) ] )