(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:OSD)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_Number '$1'))}
          spids: [3]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      expr: (bool_expr.Unary op_id:Id.BoolUnary_z child:{(DQ ($ Id.VSub_Number '$1'))})
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (C {<echo>} {(DQ <'Usage '> ($ Id.VSub_Number '$0') <' osd number to remove'>)})
            (command.ControlFlow token:<Id.ControlFlow_Exit exit>)
          ]
          spids: [8 21]
        )
      ]
    )
    (C {<sudo>} {<ceph>} {<osd>} {<crush>} {<remove>} {<osd.> (DQ ($ Id.VSub_DollarName '$OSD'))})
    (C {<sudo>} {<ceph>} {<auth>} {<del>} {<osd.> (DQ ($ Id.VSub_DollarName '$OSD'))})
    (C {<sudo>} {<ceph>} {<osd>} {<rm>} {(DQ ($ Id.VSub_DollarName '$OSD'))})
  ]
)