(command.CommandList children: [ (command.Case to_match: {($ Id.VSub_Number '$1')} arms: [ (case_arm pat_list: [{<Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>}] spids: [131 134 136 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.Sentence child: (command.Simple words: [ {<echo>} {(DQ <'Usage is '> ($ Id.VSub_Number '$0') <' num, where num is 0 to 9'>)} ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [139 140 157 -1] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:num_plus_one) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_Number '$1')} {<Id.Lit_Other '+'>} {<1>}) ) } spids: [162] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:lines_minus_one) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$num_plus_one')} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\*'>)} {<3>} ) ) } spids: [175] ) ] ) (command.Pipeline children: [ (C {<head>} {<-> (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$lines_minus_one')} {<Id.Lit_Other '+'>} {<1>}) ) } {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<which>} {($ Id.VSub_Number '$0')}))} ) (C {<tail>} {<-3>}) (C {<cut>} {<-b2->}) ] negated: F ) ] )