(CommandList children: [ (FuncDef name: usage body: (BraceGroup children: [ (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 39 stdin_parts: [ (' Usage: ') ($ VSub_Number '$0') (' [DOS flags] directory or directories\n') (' Where:\n') (' /D sort by columns\n') (' /H show help for this shell script\n') (' /N show long listing format with filenames on right\n') (' /OD sort by oldest to newest\n') (' /O-D sort by newest to oldest\n') (' /P pause after each screenful of information\n') (' /Q show owner of the file\n') (' /S recursive listing\n') (' /W use wide listing format\n') ] ) (Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)}) ] ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [14] ) spids: [10 13] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:postcmd) op:Equal rhs:{(DQ )} spids:[55])] spids: [55] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:flags) op:Equal rhs:{(DQ )} spids:[59])] spids: [59] ) (WhileUntil keyword: <KW_While while> cond: [(C {(Lit_Other '[')} {($ VSub_Pound '$#')} {(-gt)} {(0)} {(Lit_Other ']')})] body: (DoGroup children: [ (Case to_match: {($ VSub_Number '$1')} arms: [ (case_arm pat_list: [{(/D)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:flags) op: Equal rhs: {(DQ ($ VSub_Name '$flags') (' -x'))} spids: [90] ) ] spids: [90] ) ] spids: [86 88 96 16777215] ) (case_arm pat_list: [{(/H)}] action: [(C {(usage)})] spids: [99 101 105 16777215] ) (case_arm pat_list: [{(/) (Lit_Other '[') (NQW) (Lit_Other ']')}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:flags) op: Equal rhs: {(DQ ($ VSub_Name '$flags') (' -l'))} spids: [115] ) ] spids: [115] ) ] spids: [108 113 121 16777215] ) (case_arm pat_list: [{(/OD)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:flags) op: Equal rhs: {(DQ ($ VSub_Name '$flags') (' -rt'))} spids: [128] ) ] spids: [128] ) ] spids: [124 126 134 16777215] ) (case_arm pat_list: [{(/O-D)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:flags) op: Equal rhs: {(DQ ($ VSub_Name '$flags') (' -t'))} spids: [141] ) ] spids: [141] ) ] spids: [137 139 147 16777215] ) (case_arm pat_list: [{(/P)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:postcmd) op: Equal rhs: {(DQ (more))} spids: [154] ) ] spids: [154] ) ] spids: [150 152 159 16777215] ) (case_arm pat_list: [{(/S)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:flags) op: Equal rhs: {(DQ ($ VSub_Name '$flags') (' -s'))} spids: [166] ) ] spids: [166] ) ] spids: [162 164 172 16777215] ) (case_arm pat_list:[{(Lit_Other '*')}] spids:[175 177 16777215 187]) ] spids: [79 83 187] ) (C {(shift)}) ] spids: [76 195] ) ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-z)} {(DQ ($ VSub_Name '$postcmd'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Pipeline children: [ (C {(ls)} {($ VSub_Name '$flags')} {(DQ ($ VSub_At '$@'))}) (C {($ VSub_Name '$postcmd')}) ] negated: F ) ] spids: [16777215 218] ) ] else_action: [(C {(ls)} {($ VSub_Name '$flags')} {(DQ ($ VSub_At '$@'))})] spids: [233 245] ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)}) ] )