(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:file) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [16] ) ] ) (C {<shift>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:defs) op: assign_op.Equal rhs: {(DQ <'#define '> ($ Id.VSub_Number '$1'))} spids: [22] ) ] ) (C {<shift>}) (command.ForEach iter_name: def do_arg_iter: T body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:defs) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName '$defs') <'\n'> <'#define '> ($ Id.VSub_DollarName '$def') ) } spids: [37] ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:t) op: assign_op.Equal rhs: { (braced_var_sub token: <Id.VSub_Name TMPDIR> suffix_op: (suffix_op.Unary tok:<Id.VTest_Hyphen -> arg_word:{<.>}) ) <'/gro'> ($ Id.VSub_Dollar '$$') <.tmp> } spids: [60] ) ] ) (command.Simple words: [{<sed>} {<-e>} {(SQ <'s/=/ /'>)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$t')} ) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_span_id: 88 stdin_parts: [($ Id.VSub_DollarName '$defs') <'\n'>] ) ) ] do_fork: T ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe] children: [ (C {<test>} {<-r>} {($ Id.VSub_DollarName '$file')}) (C {<cmp>} {<-s>} {($ Id.VSub_DollarName '$t')} {($ Id.VSub_DollarName '$file')}) (C {<cp>} {($ Id.VSub_DollarName '$t')} {($ Id.VSub_DollarName '$file')}) ] ) (C {<rm>} {<-f>} {($ Id.VSub_DollarName '$t')}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>}) ] )