(CommandList children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:tid) op:Equal rhs:{(DQ ('broken pipe test'))} spids:[7])] spids: [7] ) (ForEach iter_name: p iter_words: [{(${ VSub_Name SSH_PROTOCOLS)}] do_arg_iter: False body: (DoGroup children: [ (C {(trace)} {(DQ ('protocol ') ($ VSub_Name '$p'))}) (ForEach iter_name: i iter_words: [{(1)} {(2)} {(3)} {(4)}] do_arg_iter: False body: (DoGroup children: [ (Pipeline children: [ (SimpleCommand words: [ {(${ VSub_Name SSH)} {(-) ($ VSub_Name '$p')} {(-F)} {($ VSub_Name '$OBJ') (/ssh_config_config)} {(nexthost)} {(echo)} {($ VSub_Name '$i')} ] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [71] ) ] ) (C {(true)}) ] negated: False ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:r) op: Equal rhs: {($ VSub_QMark '$?')} spids: [80] ) ] spids: [80] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {($ VSub_Name '$r')} {(-ne)} {(0)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (C {(fail)} { (DQ ('broken pipe returns ') ($ VSub_Name '$r') (' for protocol ') ($ VSub_Name '$p') ) } ) ] spids: [-1 97] ) ] spids: [-1 110] ) ] spids: [50 113] ) spids: [40 48] ) ] spids: [24 115] ) spids: [18 22] ) ] )