(command.CommandList
  children: [
    (command.Case
      case_kw: <Id.KW_Case case>
      to_match: (case_arg.Word w:{($ Id.VSub_Number 1)})
      arms_start: <Id.KW_In in>
      arms: [
        (CaseArm
          left: <Id.Lit_LBracket '['>
          pattern: (pat.Words words:[{<Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>}])
          middle: <Id.Right_CasePat _>
          action: []
          right: <Id.Op_DSemi _>
        )
        (CaseArm
          left: <Id.Lit_Star '*'>
          pattern: (pat.Words words:[{<Id.Lit_Star '*'>}])
          middle: <Id.Right_CasePat _>
          action: [
            (command.Sentence
              child: 
                (command.Simple
                  blame_tok: <echo>
                  more_env: []
                  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 keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          right: <Id.Op_DSemi _>
        )
      ]
      arms_end: <Id.KW_Esac esac>
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'num_plus_one='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'num_plus_one='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'num_plus_one='> name:num_plus_one)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.Simple
                    blame_tok: <expr>
                    more_env: []
                    words: [{<expr>} {($ Id.VSub_Number 1)} {<Id.Lit_Other '+'>} {<1>}]
                    redirects: []
                    do_fork: T
                  )
                right: <Id.Backtick_Right '`'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'lines_minus_one='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'lines_minus_one='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lines_minus_one='> name:lines_minus_one)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.Simple
                    blame_tok: <expr>
                    more_env: []
                    words: [
                      {<expr>}
                      {($ Id.VSub_DollarName num_plus_one)}
                      {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\*'> ch:'*')}
                      {<3>}
                    ]
                    redirects: []
                    do_fork: T
                  )
                right: <Id.Backtick_Right '`'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.Pipeline
      children: [
        (command.Simple
          blame_tok: <head>
          more_env: []
          words: [
            {<head>}
            {<-> 
              (CommandSub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.Simple
                    blame_tok: <expr>
                    more_env: []
                    words: [{<expr>} {($ Id.VSub_DollarName lines_minus_one)} {<Id.Lit_Other '+'>} {<1>}]
                    redirects: []
                    do_fork: T
                  )
                right: <Id.Backtick_Right '`'>
              )
            }
            {
              (CommandSub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.Simple
                    blame_tok: <which>
                    more_env: []
                    words: [{<which>} {($ Id.VSub_Number 0)}]
                    redirects: []
                    do_fork: T
                  )
                right: <Id.Backtick_Right '`'>
              )
            }
          ]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <tail>
          more_env: []
          words: [{<tail>} {<-3>}]
          redirects: []
          do_fork: T
        )
        (command.Simple
          blame_tok: <cut>
          more_env: []
          words: [{<cut>} {<-b2->}]
          redirects: []
          do_fork: T
        )
      ]
      ops: [<Id.Op_Pipe _> <Id.Op_Pipe _>]
    )
  ]
)