(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 ) ] ) ] ) ] )