(command.CommandList
  children: [
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.DBracket
                  expr: (bool_expr.Unary op_id:BoolUnary_z child:{(DQ ($ VSub_Number '$1'))})
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.Assignment
              pairs: [
                (assign_pair
                  lhs: (lhs_expr.LhsName name:HOST)
                  op: Equal
                  rhs: 
                    {
                      (word_part.CommandSub
                        left_token: <Left_DollarParen '$('>
                        command_list: (command.CommandList children:[(C {(hostname)} {(-f)})])
                      )
                    }
                )
              ]
            )
          ]
        )
      ]
      else_action: [
        (command.Assignment
          pairs: [
            (assign_pair
              lhs: (lhs_expr.LhsName name:HOST)
              op: Equal
              rhs: {(DQ ($ VSub_Number '$1'))}
            )
          ]
        )
      ]
    )
    (command.Simple
      words: [{(knife)} {(client)} {(show)} {($ VSub_DollarName '$HOST')}]
      redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})]
    )
    (command.Assignment
      pairs: [(assign_pair lhs:(lhs_expr.LhsName name:RES) op:Equal rhs:{($ VSub_QMark '$?')})]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.DBracket
                  expr: 
                    (bool_expr.Binary
                      op_id: BoolBinary_ne
                      left: {(DQ ($ VSub_DollarName '$RES'))}
                      right: {(0)}
                    )
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} {(DQ ("Can't find knife client ") ($ VSub_DollarName '$HOST'))})
            (command.ControlFlow
              token: <ControlFlow_Exit exit>
              arg_word: {($ VSub_DollarName '$RES')}
            )
          ]
        )
      ]
    )
    (command.Assignment
      pairs: [
        (assign_pair
          lhs: (lhs_expr.LhsName name:admin_val)
          op: Equal
          rhs: 
            {
              (word_part.CommandSub
                left_token: <Left_Backtick '`'>
                command_list: 
                  (command.CommandList
                    children: [
                      (command.Pipeline
                        children: [
                          (C {(knife)} {(client)} {(show)} {(${ VSub_Name HOST)})
                          (C {(grep)} {(Lit_Other '^') (admin) (Lit_Other ':')})
                          (C {(sed)} {(DQ ('s/admin:[^a-z]*//'))})
                        ]
                        negated: F
                      )
                    ]
                  )
              )
            }
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.DBracket
                  expr: 
                    (bool_expr.Binary
                      op_id: BoolBinary_GlobNEqual
                      left: {(DQ ($ VSub_DollarName '$admin_val'))}
                      right: {(DQ (true))}
                    )
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (command.Pipeline
              children: [
                (C {(echo)} {(-e)} 
                  {
                    (DQ (/) (word_part.EscapedLiteral token:<Lit_EscapedChar '\\"'>) (admin) 
                      (word_part.EscapedLiteral token:<Lit_EscapedChar '\\"'>) (': false') (Lit_Other '\\') (ns/false/true) (Lit_Other '\\') (nw) (Lit_Other '\\') (nq) (Lit_Other '\\') (n)
                    )
                  }
                )
                (command.Simple
                  words: [{(knife)} {(client)} {(edit)} {(${ VSub_Name HOST)}]
                  more_env: [(env_pair name:EDITOR val:{(ed)})]
                )
              ]
              negated: F
            )
          ]
        )
      ]
    )
  ]
)