(CommandList children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:tid) op:Equal rhs:{(DQ (localcommand))} spids:[7])] spids: [7] ) (SimpleCommand words: [{(echo)} {(SQ <'PermitLocalCommand yes'>)}] redirects: [ (Redir op_id: Redir_DGreat fd: -1 arg_word: {($ VSub_Name '$OBJ') (/ssh_proxy)} spids: [19] ) ] ) (SimpleCommand words: [{(echo)} {(SQ <'LocalCommand echo foo'>)}] redirects: [ (Redir op_id: Redir_DGreat fd: -1 arg_word: {($ VSub_Name '$OBJ') (/ssh_proxy)} spids: [30] ) ] ) (ForEach iter_name: p iter_words: [{(${ VSub_Name SSH_PROTOCOLS)}] do_arg_iter: False body: (DoGroup children: [ (C {(verbose)} {(DQ ('test ') ($ VSub_Name '$tid') (': proto ') ($ VSub_Name '$p') (' localcommand'))} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:a) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(${ VSub_Name SSH)} {(-F)} {($ VSub_Name '$OBJ') (/ssh_proxy)} {(-) ($ VSub_Name '$p')} {(somehost)} {(true)} ) ] ) left_token: <Left_Backtick '`'> spids: [62 78] ) } spids: [61] ) ] spids: [61] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$a'))} {(KW_Bang '!') (Lit_Other '=')} {(DQ (foo))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(C {(fail)} {(DQ ($ VSub_Name '$tid') (' proto ') ($ VSub_Name '$p'))})] spids: [-1 100] ) ] spids: [-1 112] ) ] spids: [47 114] ) spids: [41 45] ) ] )