(command.CommandList children: [ (C {<set>} {<-e>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:common_objpfx) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [54] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_program_prefix_before_env) op: assign_op.Equal rhs: {($ Id.VSub_Number '$2')} spids: [57] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:run_program_env) op: assign_op.Equal rhs: {($ Id.VSub_Number '$3')} spids: [60] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_program_prefix_after_env) op: assign_op.Equal rhs: {($ Id.VSub_Number '$4')} spids: [63] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:objpfx) op: assign_op.Equal rhs: {($ Id.VSub_Number '$5')} spids: [66] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_pre) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name test_program_prefix_before_env) <' '> (${ Id.VSub_Name run_program_env) ) } spids: [70] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name test_program_prefix_after_env) <' '> (${ Id.VSub_Name objpfx) <tst-setcontext3> ) } spids: [81] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:out) op: assign_op.Equal rhs: {(${ Id.VSub_Name objpfx) <tst-setcontext3.out>} spids: [93] ) ] ) (command.ShFunction name: cleanup body: (BraceGroup children:[(C {<rm>} {<-f>} {($ Id.VSub_DollarName '$tempfile')})]) ) (C {<trap>} {<cleanup>} {<0>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:tempfile) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<mktemp>} {(DQ <tst-setcontext3.XXXXXXXXXX>)}) ) } spids: [122] ) ] ) (C {($ Id.VSub_DollarName '$test_pre')} {($ Id.VSub_DollarName '$test')} {(DQ ($ Id.VSub_DollarName '$tempfile'))} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-e>} {(DQ ($ Id.VSub_DollarName '$tempfile'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} { (DQ <'PASS: tst-setcontext3 an exit() and created '> ($ Id.VSub_DollarName '$tempfile') ) } ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>}) ] spids: [156 169] ) ] else_action: [ (C {<echo>} {(DQ <'FAIL: tst-setcontext3 did not create '> ($ Id.VSub_DollarName '$tempfile'))}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) ] )