(command.CommandList
  children: [
    (C {<nginx>} {(DQ ($ Id.VSub_At '$@'))})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:oldcksum)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                child: (C {<cksum>} {<'/etc/nginx/conf.d/default.conf'>})
              )
            }
          spids: [50]
        )
      ]
    )
    (command.Pipeline
      children: [
        (C {<inotifywait>} {<-e>} 
          {<modify> <Id.Lit_Comma ','> <move> <Id.Lit_Comma ','> <create> <Id.Lit_Comma ','> <delete>} {<-mr>} {<--timefmt>} {(SQ <'%d/%m/%y %H:%M'>)} {<--format>} {(SQ <'%T'>)} {<'/etc/nginx/conf.d/'>}
        )
        (command.WhileUntil
          keyword: <Id.KW_While while>
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: (C {<read>} {<date>} {<Id.KW_Time time>})
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          body: 
            (command.DoGroup
              children: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:newcksum)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (command_sub
                            left_token: <Id.Left_Backtick '`'>
                            child: (C {<cksum>} {<'/etc/nginx/conf.d/default.conf'>})
                          )
                        }
                      spids: [104]
                    )
                  ]
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: 
                        (condition.Shell
                          commands: [
                            (command.Sentence
                              child: 
                                (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$newcksum'))} 
                                  {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$oldcksum'))} {<Id.Lit_RBracket ']'>}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                        )
                      action: [
                        (C {<echo>} 
                          {
                            (DQ <'At '> (${ Id.VSub_Name time) <' on '> (${ Id.VSub_Name date) 
                              <', config file update detected.'>
                            )
                          }
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:oldcksum)
                              op: assign_op.Equal
                              rhs: {($ Id.VSub_DollarName '$newcksum')}
                              spids: [150]
                            )
                          ]
                        )
                        (C {<nginx>} {<-s>} {<reload>})
                      ]
                      spids: [114 132]
                    )
                  ]
                )
              ]
            )
        )
      ]
      negated: F
    )
  ]
)