(command.CommandList
  children: [
    (command.ShAssignment
      left: <Id.Lit_VarLike 'name='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'name='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'name='> name:name)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (CommandSub
                  left_token: <Id.Left_DollarParen '$('>
                  child: 
                    (command.Simple
                      blame_tok: <mktemp>
                      more_env: []
                      words: [{<mktemp>} {<-u>} {<shsec.XXXXXX>}]
                      redirects: []
                      do_fork: T
                    )
                  right: <Id.Eof_RParen _>
                )
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'class='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'class='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'class='> name:class)
          op: assign_op.Equal
          rhs: {(DQ <shsec>)}
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      left: <Id.Lit_VarLike 'base='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'base='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'base='> name:base)
          op: assign_op.Equal
          rhs: 
            {
              (CommandSub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.Simple
                    blame_tok: <basename>
                    more_env: []
                    words: [{<basename>} {($ Id.VSub_Number 0)}]
                    redirects: []
                    do_fork: T
                  )
                right: <Id.Backtick_Right '`'>
              )
            }
        )
      ]
      redirects: []
    )
    (command.ShFunction
      name_tok: <shsec_test_cleanup>
      name: shsec_test_cleanup
      body: 
        (BraceGroup
          left: <Id.Lit_LBrace '{'>
          children: [
            (command.AndOr
              children: [
                (command.Simple
                  blame_tok: <Id.Lit_LBracket '['>
                  more_env: []
                  words: [
                    {<Id.Lit_LBracket '['>}
                    {<-c>}
                    {<'/dev/'> ($ Id.VSub_DollarName class) <'/'> ($ Id.VSub_DollarName name)}
                    {<Id.Lit_RBracket ']'>}
                  ]
                  redirects: []
                  do_fork: T
                )
                (command.Simple
                  blame_tok: <gshsec>
                  more_env: []
                  words: [{<gshsec>} {<stop>} {($ Id.VSub_DollarName name)}]
                  redirects: []
                  do_fork: T
                )
              ]
              ops: [<Id.Op_DAmp _>]
            )
            (command.Simple
              blame_tok: <geom_test_cleanup>
              more_env: []
              words: [{<geom_test_cleanup>}]
              redirects: []
              do_fork: T
            )
          ]
          redirects: []
          right: <Id.Lit_RBrace '}'>
        )
    )
    (command.Simple
      blame_tok: <trap>
      more_env: []
      words: [{<trap>} {<shsec_test_cleanup>} {<ABRT>} {<EXIT>} {<INT>} {<TERM>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <.>
      more_env: []
      words: [
        {<.>}
        {
          (CommandSub
            left_token: <Id.Left_Backtick '`'>
            child: 
              (command.Simple
                blame_tok: <dirname>
                more_env: []
                words: [{<dirname>} {($ Id.VSub_Number 0)}]
                redirects: []
                do_fork: T
              )
            right: <Id.Backtick_Right '`'>
          ) <'/../geom_subr.sh'>
        }
      ]
      redirects: []
      do_fork: T
    )
  ]
)