(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'num='> name:num) op: assign_op.Equal rhs: {(DQ <20>)} spids: [60] ) ] redirects: [] ) (command.ShFunction name: usage body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple words: [ {<echo>} { (DQ <'Usage: '> (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<basename>} {($ Id.VSub_Number 0)}) right: <Id.Backtick_Right '`'> ) <' [-nr] [-na] [-n#] [-s] [-r] [path...]'> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.Simple words: [{<echo>}] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.Simple words: [{<echo>} {(DQ <' -nr do not recurse'>)}] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.Simple words: [{<echo>} {(DQ <' -na ignore files starting with .'>)}] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.Simple words: [ {<echo>} { (DQ <' -n# list the newest # files ('> ($ Id.VSub_DollarName num) <' by default)'> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.Simple words: [{<echo>} {(DQ <' -r reverse to show oldest files'>)}] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'num='> name:num) op: assign_op.Equal rhs: {(DQ <-n> ($ Id.VSub_DollarName num))} spids: [146] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dotfiles='> name:dotfiles) op: assign_op.Equal rhs: {(DQ <yes>)} spids: [152] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'recurse='> name:recurse) op: assign_op.Equal rhs: {(DQ <yes>)} spids: [157] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'reverse='> name:reverse) op: assign_op.Equal rhs: {(DQ )} spids: [162] ) ] redirects: [] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands:[(C {<Id.Lit_Colon ':'>})]) body: (command.DoGroup children: [ (command.Case to_match: {(DQ ($ Id.VSub_Number 1))} arms: [ (case_arm pat_list: [{<-->}] action: [ (command.Sentence child: (C {<shift>}) terminator: <Id.Op_Semi _> ) (command.ControlFlow token:<Id.ControlFlow_Break break>) ] spids: [182 183 190 -1] ) (case_arm pat_list: [{<-na>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dotfiles='> name:dotfiles) op: assign_op.Equal rhs: {(DQ <no>)} spids: [196] ) ] redirects: [] ) ] spids: [193 194 201 -1] ) (case_arm pat_list: [{<-nr>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'recurse='> name:recurse) op: assign_op.Equal rhs: {(DQ <no>)} spids: [207] ) ] redirects: [] ) ] spids: [204 205 212 -1] ) (case_arm pat_list: [ {<-n> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>} ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'num='> name:num) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} spids: [222] ) ] redirects: [] ) ] spids: [215 220 225 -1] ) (case_arm pat_list: [{<-r>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'reverse='> name:reverse) op: assign_op.Equal rhs: {(DQ <r>)} spids: [231] ) ] redirects: [] ) ] spids: [228 229 236 -1] ) (case_arm pat_list: [{<--help>}] action: [(C {<usage>})] spids: [239 240 244 -1] ) (case_arm pat_list: [{<--version>}] action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<echo>} {(DQ <1.1>)}) (command.ControlFlow token:<Id.ControlFlow_Exit exit>) ] ) ] spids: [247 248 260 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [(command.ControlFlow token:<Id.ControlFlow_Break break>)] spids: [263 264 268 -1] ) ] redirects: [] ) (C {<shift>}) ] ) redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName dotfiles))} {<Id.Lit_Equals '='>} {(DQ <no>)} {<Id.Lit_RBracket ']'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ignore_hidden='> name:ignore_hidden) op: assign_op.Equal rhs: {(DQ <'-name \'.*\' -o'>)} spids: [294] ) ] redirects: [] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName recurse))} {<Id.Lit_Equals '='>} {(DQ <no>)} {<Id.Lit_RBracket ']'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dont_recurse='> name:dont_recurse) op: assign_op.Equal rhs: {(DQ <'-maxdepth 1'>)} spids: [315] ) ] redirects: [] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '#')} {<-gt>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'path_format='> name:path_format) op: assign_op.Equal rhs: {(DQ <'%p'>)} spids: [336] ) ] redirects: [] ) ] spids: [320 333] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'path_format='> name:path_format) op: assign_op.Equal rhs: {(DQ <'%P'>)} spids: [344] ) ] redirects: [] ) (C {<set>} {<-->} {(DQ <'./'>)}) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ignore_metadata='> name:ignore_metadata) op: assign_op.Equal rhs: { (DQ <Id.Lit_BadBackslash '\\'> <'( -type d -a '> <Id.Lit_BadBackslash '\\'> <'( -name \'.git\' -o -name \'.svn\' -o -name \'CVS\' '> <Id.Lit_BadBackslash '\\'> <') '> <Id.Lit_BadBackslash '\\'> <') -prune -o'> ) } spids: [361] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'print_format='> name:print_format) op: assign_op.Equal rhs: { (DQ <Id.Lit_BadBackslash '\\'> <'( -type f -printf \'%T@'> <Id.Lit_BadBackslash '\\'> <t> ($ Id.VSub_DollarName path_format) <Id.Lit_BadBackslash '\\'> <'n\' '> <Id.Lit_BadBackslash '\\'> <')'> ) } spids: [373] ) ] redirects: [] ) (command.Pipeline children: [ (C {<eval>} {<find>} {(SQ <'"$@"'>)} {($ Id.VSub_DollarName dont_recurse)} {($ Id.VSub_DollarName ignore_metadata)} {($ Id.VSub_DollarName ignore_hidden)} {($ Id.VSub_DollarName print_format)} ) (C {<sort>} {<-k1> <Id.Lit_Comma ','> <1> (${ Id.VSub_Name reverse) <n>}) (C {<tail>} {($ Id.VSub_DollarName num)}) (C {<cut>} {<-f2->}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-p>} {<'/proc/self/fd/1'>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Pipeline children: [ (C {<tr>} {(SQ <'\\n'>)} {(SQ <'\\0'>)}) (C {<xargs>} {<-r0>} {<ls>} {<-lUd>} {<--color> <Id.Lit_Equals '='> <auto>} {<-->}) ] negated: F stderr_indices: [] ) ] spids: [428 441] ) ] else_action: [(C {<cat>})] redirects: [] ) ] negated: F stderr_indices: [] ) ] )