(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:locatedb) op: Equal rhs: {(DQ (/var/locate.db))} spids: [17] ) ] spids: [17] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:slocatedb) op: Equal rhs: {(DQ ($ VSub_Name '$HOME') (/.slocatedb))} spids: [22] ) ] spids: [22] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-e)} {($ VSub_Name '$slocatedb')} {(-o)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} {(DQ (--explain))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(DQ (EOF))} here_end_span_id: 74 stdin_parts: [ ('Warning: Secure locate keeps a private database for each user, and your\n') ("database hasn't yet been created. Until it is (probably late tonight),\n") ("I'll just use the public locate database, which will show you all\n") ('publicly accessible matches rather than those explicitly available to\n') ('account ${USER:-$LOGNAME}.\n') ] ) (Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)}) ] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} {(DQ (--explain))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)})] spids: [16777215 94] ) ] spids: [16777215 102] ) (C {(touch)} {($ VSub_Name '$slocatedb')}) (C {(chmod)} {(600)} {($ VSub_Name '$slocatedb')}) ] spids: [16777215 55] ) (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-s)} {($ VSub_Name '$slocatedb')} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:locatedb) op: Equal rhs: {($ VSub_Name '$slocatedb')} spids: [148] ) ] spids: [148] ) ] spids: [133 145] ) ] else_action: [ (SimpleCommand words: [ {(echo)} { (DQ ('Warning: using public database. Use ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Number '$0') (' --explain') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) (' for details.') ) } ] redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})] ) ] spids: [151 168] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-z)} {(DQ ($ VSub_Number '$1'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Sentence child: (SimpleCommand words: [{(echo)} {(DQ ('Usage: ') ($ VSub_Number '$0') (' pattern'))}] redirects: [(Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})] ) terminator: <Op_Semi ';'> ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [16777215 185] ) ] spids: [16777215 204] ) (C {(exec)} {(grep)} {(-i)} {(DQ ($ VSub_Number '$1'))} {($ VSub_Name '$locatedb')}) ] )