(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.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:150) fd: -1 arg_word: {(2)} ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:152) ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:154) 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: (Token id:Id.Left_Backtick val:'`' span_id:163) command_list: (command.CommandList children: [(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: (Token id:Id.Left_Backtick val:'`' span_id:176) command_list: (command.CommandList children: [ (C {(expr)} {($ Id.VSub_DollarName '$num_plus_one')} { (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\*' span_id:185) ) } {(3)} ) ] ) ) } spids: [175] ) ] ) (command.Pipeline children: [ (C {(head)} {(-) (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:193) command_list: (command.CommandList children: [ (C {(expr)} {($ Id.VSub_DollarName '$lines_minus_one')} {(Id.Lit_Other '+')} {(1)}) ] ) ) } { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:205) command_list: (command.CommandList children:[(C {(which)} {($ Id.VSub_Number '$0')})]) ) } ) (C {(tail)} {(-3)}) (C {(cut)} {(-b2-)}) ] negated: F ) ] )