(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: F
                      )
                    ]
                  )
                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'))})
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [16777215 49]
        )
      ]
      spids: [16777215 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: F
                      )
                    ]
                  )
                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'))})
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [16777215 107]
        )
      ]
      spids: [16777215 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')})
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(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: [16777215 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:16777215 arg_word:{($ VSub_Name '$BEFORE')} spids:[255])
      ]
    )
    (SimpleCommand
      words: [{(echo)} {($ VSub_Name '$COUNT')}]
      redirects: [
        (Redir
          op_id: Redir_Great
          fd: 16777215
          arg_word: {($ VSub_Name '$DEBUGDIR') (/) ($ VSub_Number '$1')}
          spids: [263]
        )
      ]
    )
    (SimpleCommand
      words: [{(dmesg)}]
      redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{($ VSub_Name '$AFTER')} spids:[271])]
    )
    (Pipeline
      children: [
        (C {(diff)} {($ VSub_Name '$BEFORE')} {($ VSub_Name '$AFTER')})
        (C {(grep)} {(DQ ('>'))})
      ]
      negated: F
    )
    (C {(rm)} {(-f)} {($ VSub_Name '$BEFORE')} {($ VSub_Name '$AFTER')})
  ]
)