(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_id: Redir_DLess fd: -1 body: {('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') } do_expansion: False here_end: EOF was_filled: True spids: [60] ) (Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[66]) ] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Number '$1'))} {(Lit_Other '=')} {(DQ (--explain))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(C {(exit)} {(0)})] spids: [-1 88] ) ] spids: [-1 96] ) (C {(touch)} {($ VSub_Name '$slocatedb')}) (C {(chmod)} {(600)} {($ VSub_Name '$slocatedb')}) ] spids: [-1 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: [142] ) ] spids: [142] ) ] spids: [127 139] ) ] 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_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[159])] ) ] spids: [145 162] ) (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_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[190])] ) terminator: <Op_Semi ';'> ) (C {(exit)} {(1)}) ] spids: [-1 179] ) ] spids: [-1 198] ) (C {(exec)} {(grep)} {(-i)} {(DQ ($ VSub_Number '$1'))} {($ VSub_Name '$locatedb')}) ] )