(command.CommandList children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_Pound '$#'))} {(-lt)} {(2)} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:49) ) ] action: [ (command.Simple words: [ {(echo)} { (DQ ('Usage: ') (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:58) command_list: (command.CommandList children: [(C {(basename)} {($ Id.VSub_Number '$0')})] ) ) (' MM YYYY [other find parameters]') ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:68) fd: -1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:72) arg_word: {(1)} ) ] spids: [36 51] ) ] ) (C {(Id.KW_Set set)} {(-e)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:month) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [87] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:year) op: assign_op.Equal rhs: {($ Id.VSub_Number '$2')} spids: [90] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(shift)}) terminator: (Token id:Id.Op_Semi val:';' span_id:94) ) (C {(shift)}) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$month'))} {(Id.Lit_Equals '=')} {(DQ (12))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:114) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:next_year) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:120) command_list: (command.CommandList children: [ (C {(expr)} {($ Id.VSub_DollarName '$year')} {(Id.Lit_Other '+')} {(1)}) ] ) ) } spids: [119] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:next_year) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:134) command_list: (command.CommandList children: [ (C {(printf)} {(DQ ('%02d'))} {($ Id.VSub_DollarName '$next_year')}) ] ) ) } spids: [133] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:next_month) op: assign_op.Equal rhs: {(1)} spids: [150] ) ] ) ] spids: [99 116] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:next_year) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$year')} spids: [156] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:next_month) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:161) command_list: (command.CommandList children: [ (C {(expr)} {($ Id.VSub_DollarName '$month')} {(Id.Lit_Other '+')} {(1)}) ] ) ) } spids: [160] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:now) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:176) command_list: (command.CommandList children: [(C {(date)} {(--utc)} {(Id.Lit_Other '+') (Id.Lit_Other '%') (s)})] ) ) } spids: [175] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:start) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:189) command_list: (command.CommandList children: [ (C {(date)} {(--date) (Id.Lit_Equals '=') (DQ ($ Id.VSub_DollarName '$year') (-) ($ Id.VSub_DollarName '$month') ('-01 UTC') ) } {(Id.Lit_Other '+') (Id.Lit_Other '%') (s)} ) ] ) ) } spids: [188] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:end) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:209) command_list: (command.CommandList children: [ (C {(date)} {(--date) (Id.Lit_Equals '=') (DQ ($ Id.VSub_DollarName '$next_year') (-) ($ Id.VSub_DollarName '$next_month') ('-01 UTC') ) } {(Id.Lit_Other '+') (Id.Lit_Other '%') (s)} ) ] ) ) } spids: [208] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {($ Id.VSub_DollarName '$start')} {(-gt)} {($ Id.VSub_DollarName '$now')} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:240) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:start) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$now')} spids: [245] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:end) op: assign_op.Equal rhs: {(DQ )} spids: [249] ) ] ) ] spids: [229 242] ) (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {($ Id.VSub_DollarName '$end')} {(-gt)} {($ Id.VSub_DollarName '$now')} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:264) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:end) op: assign_op.Equal rhs: {(DQ )} spids: [269] ) ] ) ] spids: [253 266] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:start_days_ago) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:277) command_list: (command.CommandList children: [ (C {(expr)} { (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\(' span_id:286) ) } {($ Id.VSub_DollarName '$now')} {(-)} {($ Id.VSub_DollarName '$start')} { (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\)' span_id:294) ) } {(/)} {(86400)} ) ] ) ) } spids: [276] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:start_days_ago) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:302) command_list: (command.CommandList children: [ (C {(expr)} {($ Id.VSub_DollarName '$start_days_ago')} {(Id.Lit_Other '+')} {(1)}) ] ) ) } spids: [301] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$end'))} {(Id.Lit_RBracket ']')}) terminator: (Token id:Id.Op_Semi val:';' span_id:323) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:end_days_ago) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:332) command_list: (command.CommandList children: [ (C {(expr)} { (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\(' span_id:341) ) } {($ Id.VSub_DollarName '$now')} {(-)} {($ Id.VSub_DollarName '$end')} { (word_part.EscapedLiteral token: (Token id:Id.Lit_EscapedChar val:'\\)' span_id:349) ) } {(/)} {(86400)} ) ] ) ) } spids: [331] ) ] ) (C {(find)} {(DQ ($ Id.VSub_At '$@'))} {(-daystart)} {(-mtime)} {(-) ($ Id.VSub_DollarName '$start_days_ago')} {(-mtime)} {(Id.Lit_Other '+') ($ Id.VSub_DollarName '$end_days_ago')} ) ] spids: [314 325] ) ] else_action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:380) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(-n)} {($ Id.VSub_DollarName '$month')}) (C {(wc)} {(-c)}) ] negated: F ) ] ) ) } {(-eq)} {(1)} {(Id.Lit_RBracket ']')} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:month) op: assign_op.Equal rhs: {(DQ (0) ($ Id.VSub_DollarName '$month'))} spids: [404] ) ] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(Id.Lit_LBracket '[')} { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:413) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(-n)} {($ Id.VSub_DollarName '$year')}) (C {(wc)} {(-c)}) ] negated: F ) ] ) ) } {(-eq)} {(2)} {(Id.Lit_RBracket ']')} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:year) op: assign_op.Equal rhs: {(DQ (20) ($ Id.VSub_DollarName '$year'))} spids: [437] ) ] ) ] ) (command.Pipeline children: [ (C {(find)} {(DQ ($ Id.VSub_At '$@'))} {(-daystart)} {(-mtime)} {(-) ($ Id.VSub_DollarName '$start_days_ago')} {(-printf)} {(DQ ('%p') (Id.Lit_Other '\\') ('0%Tm-%TY') (Id.Lit_Other '\\') (n))} ) (command.Simple words: [ {(grep)} {(-a)} { (DQ ($ Id.VSub_DollarName '$month') (-) ($ Id.VSub_DollarName '$year') (Id.Lit_Other '$') ) } ] more_env: [(env_pair name:LANG val:{(C)} spids:[470])] ) (C {(cut)} {(-d)} {(SQ )} {(-f1)}) ] negated: F ) ] ) ] )