(command.CommandList
  children: [
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '#')} 
                  {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<2>} {<Id.Lit_RBracket ']'>}
                )
              ]
            )
          action: [
            (command.Simple
              words: [{<echo>} {(DQ <'Usage: mvdir fromdir newname'>)}]
              redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              more_env: []
              do_fork: T
            )
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<2>})
          ]
          spids: [92 105]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number 1))} {<Id.Lit_Equals '='>} {<.>} 
                  {<Id.Lit_RBracket ']'>}
                )
              ]
            )
          action: [
            (command.Simple
              words: [{<echo>} {(DQ <'mvdir: cannot move \'.\''>)}]
              redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              more_env: []
              do_fork: T
            )
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<2>})
          ]
          spids: [124 138]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'f='> name:f)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                child: (C {<basename>} {(DQ ($ Id.VSub_Number 1))})
                right: <Id.Backtick_Right '`'>
              )
            }
          spids: [157]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 't='> name:t)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_Number 2))}
          spids: [168]
        )
      ]
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<Id.Lit_LBracket '['>} {<-d>} {(DQ ($ Id.VSub_DollarName t))} {<Id.Lit_RBracket ']'>})
              ]
            )
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 't='> name:t)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName t)) <'/'> (DQ ($ Id.VSub_DollarName f))}
                  spids: [188]
                )
              ]
              redirects: []
            )
          ]
          spids: [173 185]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<Id.Lit_LBracket '['>} {<-f>} {(DQ ($ Id.VSub_DollarName t))} {<-o>} {<-d>} 
                  {(DQ ($ Id.VSub_DollarName t))} {<Id.Lit_RBracket ']'>}
                )
              ]
            )
          action: [
            (command.Simple
              words: [{<echo>} {(DQ ($ Id.VSub_DollarName t))} {<exists>}]
              redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              more_env: []
              do_fork: T
            )
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [199 219]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} {(DQ ($ Id.VSub_Number 1))} 
                  {<Id.Lit_RBracket ']'>}
                )
              ]
            )
          action: [
            (command.Simple
              words: [{<echo>} {(DQ ($ Id.VSub_Number 1))} {<must>} {<be>} {<a>} {<directory>}]
              redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              more_env: []
              do_fork: T
            )
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [240 254]
        )
      ]
      else_action: []
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'here='> name:here)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                child: (C {<pwd>})
                right: <Id.Backtick_Right '`'>
              )
            }
          spids: [292]
        )
      ]
      redirects: []
    )
    (C {<cd>} {(DQ ($ Id.VSub_Number 1))})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'from='> name:from)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (command_sub
                  left_token: <Id.Left_Backtick '`'>
                  child: (C {<pwd>})
                  right: <Id.Backtick_Right '`'>
                ) <'/'>
              )
            }
          spids: [305]
        )
      ]
      redirects: []
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lfrom='> name:lfrom)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (C {<expr>} {(DQ ($ Id.VSub_DollarName from))} {<Id.Lit_Colon ':'>} 
                    {(DQ ($ Id.VSub_DollarName from))}
                  )
                right: <Id.Backtick_Right '`'>
              )
            }
          spids: [315]
        )
      ]
      redirects: []
    )
    (C {<cd>} {(DQ ($ Id.VSub_DollarName here))})
    (C {<mkdir>} {(DQ ($ Id.VSub_DollarName t))})
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<Id.Lit_LBracket '['>} {($ Id.VSub_QMark '?')} 
                  {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<0>} {<Id.Lit_RBracket ']'>}
                )
              ]
            )
          action: [(command.ControlFlow token:<Id.ControlFlow_Exit exit>)]
          spids: [348 361]
        )
      ]
      else_action: []
      redirects: []
    )
    (C {<cd>} {(DQ ($ Id.VSub_DollarName t))})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'to='> name:to)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                child: (C {<pwd>})
                right: <Id.Backtick_Right '`'>
              )
            }
          spids: [374]
        )
      ]
      redirects: []
    )
    (C {<cd>} {(DQ ($ Id.VSub_DollarName here))})
    (C {<rmdir>} {(DQ ($ Id.VSub_DollarName t))})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'a='> name:a)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (C {<expr>} {(DQ ($ Id.VSub_DollarName to))} {<Id.Lit_Colon ':'>} 
                    {(DQ ($ Id.VSub_DollarName from))}
                  )
                right: <Id.Backtick_Right '`'>
              )
            }
          spids: [394]
        )
      ]
      redirects: []
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName a))} {<Id.Lit_Equals '='>} 
                  {(DQ ($ Id.VSub_DollarName lfrom))} {<Id.Lit_RBracket ']'>}
                )
              ]
            )
          action: [
            (command.Simple
              words: [{<echo>} {<arguments>} {<have>} {<common>} {<path>}]
              redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              more_env: []
              do_fork: T
            )
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [411 427]
        )
      ]
      else_action: []
      redirects: []
    )
    (C {<mv>} {(DQ ($ Id.VSub_Number 1))} {(DQ ($ Id.VSub_DollarName t))})
  ]
)