(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:DEBUGFS)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (Pipeline
                        children: [(C {(cat)} {(/proc/mounts)}) (C {(grep)} {(debugfs)})]
                        negated: False
                      )
                    ]
                  )
                left_token: <Left_Backtick "`">
                spids: [20 30]
              )
            }
          spids: [19]
        )
      ]
      spids: [19]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$DEBUGFS"))} {(Lit_Other "=") (Lit_Other "=")} {(DQ )} 
                  {(Lit_Other "]")}
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (C {(echo)} {(DQ ("debugfs does not appear to be mounted!"))})
            (C {(echo)} {(DQ ("Please mount debugfs and try again"))})
            (C {(exit)} {(1)})
          ]
          spids: [-1 49]
        )
      ]
      spids: [-1 70]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:DEBUGDIR)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [
                      (Pipeline
                        children: [
                          (C {(echo)} {($ VSub_Name "$DEBUGFS")})
                          (C {(awk)} {(SQ <"{print $2}">)})
                        ]
                        negated: False
                      )
                    ]
                  )
                left_token: <Left_Backtick "`">
                spids: [77 89]
              ) (/nfsd)
            }
          spids: [76]
        )
      ]
      spids: [76]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other "[")} {(KW_Bang "!")} {(-d)} {(DQ ($ VSub_Name "$DEBUGDIR"))} 
                  {(Lit_Other "]")}
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (C {(echo)} {(DQ ($ VSub_Name "$DEBUGDIR") (" does not exist"))})
            (C {(echo)} {(DQ ("Check that your .config selects CONFIG_NFSD_FAULT_INJECTION"))})
            (C {(exit)} {(1)})
          ]
          spids: [-1 107]
        )
      ]
      spids: [-1 129]
    )
    (FuncDef
      name: help
      body: 
        (BraceGroup
          children: [
            (C {(echo)} {(DQ ("Usage ") ($ VSub_Number "$0") (" injection_type [count]"))})
            (C {(echo)} {(DQ )})
            (C {(echo)} {(DQ ("Injection types are:"))})
            (C {(ls)} {($ VSub_Name "$DEBUGDIR")})
            (C {(exit)} {(1)})
          ]
          spids: [138]
        )
      spids: [132 137]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other "[")} {($ VSub_Pound "$#")} {(Lit_Other "=") (Lit_Other "=")} {(0)} 
                  {(Lit_Other "]")}
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [(C {(help)})]
          spids: [-1 189]
        )
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other "[")} {(KW_Bang "!")} {(-f)} 
                  {($ VSub_Name "$DEBUGDIR") (/) ($ VSub_Number "$1")} {(Lit_Other "]")}
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [(C {(help)})]
          spids: [194 209]
        )
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(Lit_Other "[")} {($ VSub_Pound "$#")} {(KW_Bang "!") (Lit_Other "=")} {(2)} 
                  {(Lit_Other "]")}
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [(assign_pair lhs:(LhsName name:COUNT) op:Equal rhs:{(0)} spids:[231])]
              spids: [231]
            )
          ]
          spids: [214 228]
        )
      ]
      else_action: [
        (Assignment
          keyword: Assign_None
          pairs: [
            (assign_pair
              lhs: (LhsName name:COUNT)
              op: Equal
              rhs: {($ VSub_Number "$2")}
              spids: [237]
            )
          ]
          spids: [237]
        )
      ]
      spids: [234 240]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:BEFORE)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(mktemp)})])
                left_token: <Left_Backtick "`">
                spids: [244 246]
              )
            }
          spids: [243]
        )
      ]
      spids: [243]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:AFTER)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: (CommandList children:[(C {(mktemp)})])
                left_token: <Left_Backtick "`">
                spids: [249 251]
              )
            }
          spids: [248]
        )
      ]
      spids: [248]
    )
    (SimpleCommand
      words: [{(dmesg)}]
      redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{($ VSub_Name "$BEFORE")} spids:[255])]
    )
    (SimpleCommand
      words: [{(echo)} {($ VSub_Name "$COUNT")}]
      redirects: [
        (Redir
          op_id: Redir_Great
          fd: -1
          arg_word: {($ VSub_Name "$DEBUGDIR") (/) ($ VSub_Number "$1")}
          spids: [263]
        )
      ]
    )
    (SimpleCommand
      words: [{(dmesg)}]
      redirects: [(Redir op_id:Redir_Great fd:-1 arg_word:{($ VSub_Name "$AFTER")} spids:[271])]
    )
    (Pipeline
      children: [
        (C {(diff)} {($ VSub_Name "$BEFORE")} {($ VSub_Name "$AFTER")})
        (C {(grep)} {(DQ (">"))})
      ]
      negated: False
    )
    (C {(rm)} {(-f)} {($ VSub_Name "$BEFORE")} {($ VSub_Name "$AFTER")})
  ]
)