(command.CommandList
  children: [
    (C {<set>} {<-e>})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:TMP)
          op: assign_op.Equal
          rhs: {<'/tmp/mtree.'> ($ Id.VSub_Dollar '$$')}
          spids: [33]
        )
      ]
    )
    (C {<rm>} {<-rf>} {(${ Id.VSub_Name TMP)})
    (C {<mkdir>} {<-p>} {(${ Id.VSub_Name TMP)} {(${ Id.VSub_Name TMP) <'/mr'>} 
      {(${ Id.VSub_Name TMP) <'/mt'>}
    )
    (C {<mkdir>} {(${ Id.VSub_Name TMP) <'/mt/foo'>})
    (C {<mkdir>} 
      {(${ Id.VSub_Name TMP) <'/mr/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\*'>)}
    )
    (command.Pipeline
      children: [
        (C {<mtree>} {<-c>} {<-p>} {(${ Id.VSub_Name TMP) <'/mr'>})
        (command.Simple
          words: [{<mtree>} {<-U>} {<-r>} {<-p>} {(${ Id.VSub_Name TMP) <'/mt'>}]
          redirects: [
            (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})
            (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})
          ]
          do_fork: T
        )
      ]
      negated: F
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<-d>} {(${ Id.VSub_Name TMP) <'/mt/foo'>} 
                      {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.Simple
              words: [{<echo>} {(DQ <'ERROR Mtree create fell for filename with \'*\' char'>)}]
              redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (C {<rm>} {<-rf>} {(${ Id.VSub_Name TMP)})
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [114 129]
        )
      ]
    )
    (C {<rmdir>} 
      {(${ Id.VSub_Name TMP) <'/mr/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\*'>)}
    )
    (C {<mkdir>} {<-p>} {(${ Id.VSub_Name TMP) <'/mt/foo'>})
    (C {<mkdir>} 
      {(${ Id.VSub_Name TMP) <'/mr/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\['>) <f> 
        (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\]'>) <oo>
      }
    )
    (command.Pipeline
      children: [
        (C {<mtree>} {<-c>} {<-p>} {(${ Id.VSub_Name TMP) <'/mr'>})
        (command.Simple
          words: [{<mtree>} {<-U>} {<-r>} {<-p>} {(${ Id.VSub_Name TMP) <'/mt'>}]
          redirects: [
            (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})
            (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})
          ]
          do_fork: T
        )
      ]
      negated: F
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<-d>} {(${ Id.VSub_Name TMP) <'/mt/foo'>} 
                      {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.Simple
              words: [{<echo>} {(DQ <'ERROR Mtree create fell for filename with \'[\' char'>)}]
              redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (C {<rm>} {<-rf>} {(${ Id.VSub_Name TMP)})
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [219 234]
        )
      ]
    )
    (C {<rmdir>} 
      {(${ Id.VSub_Name TMP) <'/mr/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\['>) <f> 
        (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\]'>) <oo>
      }
    )
    (C {<mkdir>} {<-p>} {(${ Id.VSub_Name TMP) <'/mt/foo'>})
    (C {<mkdir>} 
      {(${ Id.VSub_Name TMP) <'/mr/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\?'>) <oo>}
    )
    (command.Pipeline
      children: [
        (C {<mtree>} {<-c>} {<-p>} {(${ Id.VSub_Name TMP) <'/mr'>})
        (command.Simple
          words: [{<mtree>} {<-U>} {<-r>} {<-p>} {(${ Id.VSub_Name TMP) <'/mt'>}]
          redirects: [
            (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})
            (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})
          ]
          do_fork: T
        )
      ]
      negated: F
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<-d>} {(${ Id.VSub_Name TMP) <'/mt/foo'>} 
                      {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.Simple
              words: [{<echo>} {(DQ <'ERROR Mtree create fell for filename with \'?\' char'>)}]
              redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (C {<rm>} {<-rf>} {(${ Id.VSub_Name TMP)})
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [325 340]
        )
      ]
    )
    (C {<rmdir>} 
      {(${ Id.VSub_Name TMP) <'/mr/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\?'>) <oo>}
    )
    (C {<mkdir>} 
      {(${ Id.VSub_Name TMP) <'/mr/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\#'>)}
    )
    (command.Simple
      words: [{<mtree>} {<-c>} {<-p>} {(${ Id.VSub_Name TMP) <'/mr'>}]
      redirects: [
        (redir
          op: <Id.Redir_Great '>'>
          loc: (redir_loc.Fd fd:1)
          arg: {(${ Id.VSub_Name TMP) <'/_'>}
        )
      ]
      do_fork: T
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.Simple
                      words: [{<mtree>} {<-U>} {<-r>} {<-p>} {(${ Id.VSub_Name TMP) <'/mt'>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_Less '<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: {(${ Id.VSub_Name TMP) <'/_'>}
                        )
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/dev/null'>}
                        )
                        (redir
                          op: <Id.Redir_GreatAnd '2>&'>
                          loc: (redir_loc.Fd fd:2)
                          arg: {<1>}
                        )
                      ]
                      do_fork: T
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [(C {<true>})]
          spids: [404 435]
        )
      ]
      else_action: [
        (command.Simple
          words: [{<echo>} {(DQ <'ERROR Mtree create fell for filename with \'#\' char'>)}]
          redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
          do_fork: T
        )
        (C {<rm>} {<-rf>} {(${ Id.VSub_Name TMP)})
        (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} 
                      {(${ Id.VSub_Name TMP) <'/mt/'> 
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\#'>
                        )
                      } {<Id.Lit_RBracket ']'>}
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.Simple
              words: [{<echo>} {(DQ <'ERROR Mtree update failed to create name with \'#\' char'>)}]
              redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
            (C {<rm>} {<-rf>} {(${ Id.VSub_Name TMP)})
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [470 488]
        )
      ]
    )
    (C {<rmdir>} 
      {(${ Id.VSub_Name TMP) <'/mr/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\#'>)}
    )
    (C {<rm>} {<-rf>} {(${ Id.VSub_Name TMP)})
    (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>})
  ]
)