(CommandList children: [ (C {(set)} {(-e)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:common_objpfx) op: Equal rhs: {($ VSub_Number '$1')} spids: [54] ) ] spids: [54] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_program_prefix) op: Equal rhs: {($ VSub_Number '$2')} spids: [57] ) ] spids: [57] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:objpfx) op:Equal rhs:{($ VSub_Number '$3')} spids:[60])] spids: [60] ) (AndOr ops: [Op_DAmp] children: [ (C {(${ VSub_Name test_program_prefix)} {(${ VSub_Name objpfx) (test-freopen)} {(${ VSub_Name objpfx) (test-freopen.out)} ) (SimpleCommand words: [{(cmp)} {(${ VSub_Name objpfx) (test-freopen.out)} {(-)}] redirects: [ (HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(DQ (EOF))} here_end_span_id: 96 stdin_parts: [('Hello world (mb)\n') ('Hello world (wc)\n')] ) ] ) ] ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{($ VSub_QMark '$?')}) ] )