(command.CommandList children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_LBracket '[')} {(DQ ($ VSub_Pound '$#'))} {(-lt)} {(1)} {(Lit_RBracket ']')}) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:me) op: Equal rhs: { (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [(C {(basename)} {($ VSub_Number '$0')})] ) ) } ) ] ) (command.Simple words: [{(echo)} {(DQ ('Usage: ') ($ VSub_DollarName '$me') (' size [-n] [command]'))}] redirects: [(redir.Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})] ) (command.Simple words: [{(echo)} {(DQ ('split data from stdin to multiple invocations of a command'))}] redirects: [(redir.Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})] ) (command.Simple words: [{(echo)}] redirects: [(redir.Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})] ) (command.Simple words: [ {(echo)} {(DQ (' -n pass the chunk number as the first parameter to command'))} ] redirects: [(redir.Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})] ) (command.Simple words: [{(echo)} {(DQ ('Examples:'))}] redirects: [(redir.Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})] ) (command.Simple words: [{(echo)} {(DQ (' ') ($ VSub_Number '$0') (" 10000 'wc -c' < /bin/ls"))}] redirects: [(redir.Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})] ) (command.Simple words: [{(echo)} {(DQ (' ') ($ VSub_Number '$0') (' 10000 < /bin/ls'))}] redirects: [(redir.Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})] ) (command.Simple words: [{(echo)} {(DQ (' ') ($ VSub_Number '$0') (' 10000 -n < /bin/ls'))}] redirects: [(redir.Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})] ) (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] ) ] ) (command.CommandList children: [ (command.Sentence child: (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:chunk_size) op: Equal rhs: {($ VSub_Number '$1')} ) ] ) terminator: <Op_Semi ';'> ) (C {(shift)}) ] ) (command.AndOr ops: [Op_DAmp] children: [ (C {(test)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} {(-n)}) (command.BraceGroup children: [ (command.Sentence child: (command.Assignment pairs: [(assign_pair lhs:(lhs_expr.LhsName name:pass_part) op:Equal rhs:{(1)})] ) terminator: <Op_Semi ';'> ) (command.Sentence child:(C {(shift)}) terminator:<Op_Semi ';'>) ] ) ] ) (command.AndOr ops: [Op_DAmp Op_DPipe] children: [ (C {(test)} {(DQ ($ VSub_Number '$1'))}) (command.Assignment pairs: [(assign_pair lhs:(lhs_expr.LhsName name:cmd) op:Equal rhs:{(DQ ($ VSub_Star '$*'))})] ) (command.Assignment pairs: [(assign_pair lhs:(lhs_expr.LhsName name:cmd) op:Equal rhs:{(example_cmd)})] ) ] ) (command.FuncDef name: example_cmd body: (command.BraceGroup children: [ (command.Sentence child: (C {(echo)} { (DQ ('processing part ') ($ VSub_Number '$1') (' (') (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children:[(C {(wc)} {(-c)})]) ) (' bytes)') ) } ) terminator: <Op_Semi ';'> ) ] ) ) (command.Assignment pairs: [(assign_pair lhs:(lhs_expr.LhsName name:part) op:Equal rhs:{(1)})] ) (command.WhileUntil keyword: <KW_While while> cond: [(command.Sentence child:(C {(true)}) terminator:<Op_Semi ';'>)] body: (command.DoGroup children: [ (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:c) op: Equal rhs: { (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [(C {(od)} {(-to1)} {(-An)} {(-N1)})] ) ) } ) ] ) (command.AndOr ops: [Op_DPipe] children: [ (C {(test)} {(DQ ($ VSub_DollarName '$c'))}) (command.ControlFlow token:<ControlFlow_Break break>) ] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:c) op: Equal rhs: { (word_part.CommandSub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [(C {(echo)} {($ VSub_DollarName '$c')})] ) ) } ) ] ) (command.AndOr ops: [Op_DAmp] children: [ (C {(test)} {(DQ ($ VSub_DollarName '$pass_part'))}) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ppart) op: Equal rhs: {($ VSub_DollarName '$part')} ) ] ) ] ) (command.AndOr ops: [Op_DPipe] children: [ (command.Pipeline children: [ (command.BraceGroup children: [ (C {(printf)} { (DQ (word_part.EscapedLiteral token:<Lit_EscapedChar '\\\\'>) ($ VSub_DollarName '$c') ) } ) (C {(head)} {(-c) (word_part.ArithSub anode: (arith_expr.Binary op_id: Arith_Minus left: (arith_expr.ArithWord w:{($ VSub_DollarName '$chunk_size')}) right: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) ) } ) ] ) (C {($ VSub_DollarName '$cmd')} {($ VSub_DollarName '$ppart')}) ] negated: F ) (command.ControlFlow token:<ControlFlow_Break break>) ] ) (command.Assignment pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:part) op: Equal rhs: { (word_part.ArithSub anode: (arith_expr.Binary op_id: Arith_Plus left: (arith_expr.ArithWord w:{($ VSub_DollarName '$part')}) right: (arith_expr.ArithWord w:{(Lit_Digits 1)}) ) ) } ) ] ) ] ) ) ] )