(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:locatedb) op: assign_op.Equal rhs: {(DQ (/tmp/locate.db))} spids: [11] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} { (DQ (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:22) command_list: (command.CommandList children:[(C {(whoami)})]) ) ) } {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(DQ (root))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:36) ) ] action: [ (command.Simple words: [{(echo)} {(DQ ('Must be root to run this command.'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:47) fd: -1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:51) arg_word: {(1)} ) ] spids: [17 38] ) ] ) (command.Simple words: [{(find)} {(/)} {(-print)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:64) fd: -1 arg_word: {($ Id.VSub_DollarName '$locatedb')} ) ] ) (command.ControlFlow token:(Token id:Id.ControlFlow_Exit val:exit span_id:69) arg_word:{(0)}) ] )