(command.CommandList children: [ (command.ShFunction name: child_handler body: (BraceGroup children:[(C {<echo>} {(DQ <'child handler called'>)})]) ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(DQ ($ Id.VSub_Number '$1')) <x>} right: {<x>} ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {(DQ <'child process '> ($ Id.VSub_Dollar '$$') <' here...'>)}) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: <Id.Lit_ArithVarLike i> right: {<Id.Lit_Digits 1>} ) cond: (arith_expr.Binary op_id: Id.Arith_LessEqual left: <Id.Lit_ArithVarLike i> right: {<Id.Lit_Digits 1000>} ) update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:<Id.Lit_ArithVarLike i>) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:x) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<echo>} {<b> <Id.Lit_Star '*'>}) ) } spids: [79] ) ] ) (command.ForExpr init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: <Id.Lit_ArithVarLike j> right: {<Id.Lit_Digits 1>} ) cond: (arith_expr.Binary op_id: Id.Arith_LessEqual left: <Id.Lit_ArithVarLike j> right: {<Id.Lit_Digits 1000>} ) update: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: <Id.Lit_ArithVarLike j> ) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:x) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<echo>} {<t> <Id.Lit_Star '*'>}) ) } spids: [117] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:x) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<echo>} {<Id.Lit_Star '*'> <source> <Id.Lit_Star '*'>}) ) } spids: [128] ) ] ) ] ) ) ] ) ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [22 39] ) ] ) (command.ShAssignment pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:x) op:assign_op.Equal rhs:{<18>} spids:[156])] ) (C {<trap>} {<child_handler>} {<CHLD>}) (C {<kill>} {<-INT>} {($ Id.VSub_Dollar '$$')}) (C {<kill>} {<-INT>} {($ Id.VSub_Dollar '$$')}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>}) ] )