(CommandList children: [ (C {(Lit_Other ":")} {(vex)} {(skip)} {(expand)} {(command)} {(...)}) (Case to_match: {($ VSub_Pound "$#")} arms: [ (case_arm pat_list: [{(Lit_Other "[") (012) (Lit_Other "]")}] action: [ (Sentence child: (C {(print)} {(-u2)} {(DQ ("Usage: ") ($ VSub_Number "$0") (" skip expand command ..."))}) terminator: <Op_Semi ";"> ) (C {(exit)} {(1)}) ] spids: [87 90 107 -1] ) ] spids: [81 85 109] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:skip) op:Equal rhs:{($ VSub_Number "$1")} spids:[111])] spids: [111] ) (C {(shift)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:expand) op:Equal rhs:{($ VSub_Number "$1")} spids:[116])] spids: [116] ) (C {(shift)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:command) op: Equal rhs: {($ VSub_Number "$1")} spids: [121] ) ] spids: [121] ) (C {(shift)}) (C {(integer)} {(Lit_VarLike "argc=") (0)} {(Lit_VarLike "noexpand=") (0)}) (ForEach iter_name: arg do_arg_iter: True body: (DoGroup children: [ (If arms: [ (if_arm cond: [(DParen child:(ArithVarRef name:noexpand))] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:noexpand) op: Equal rhs: {(0)} spids: [150] ) ] spids: [150] ) ] spids: [-1 148] ) ] else_action: [ (Case to_match: {($ VSub_Name "$arg")} arms: [ (case_arm pat_list: [{(-) (Lit_Other "[") ($ VSub_Name "$skip") (Lit_Other "]")}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:noexpand) op: Equal rhs: {(1)} spids: [170] ) ] spids: [170] ) ] spids: [163 167 174 -1] ) (case_arm pat_list: [{(-) (Lit_Other "*")}] spids: [177 179 181 -1] ) (case_arm pat_list: [{($ VSub_Name "$expand")}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:x) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [{(vpath)} {(DQ ($ VSub_Name "$arg"))}] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [196] ) ] ) ] ) left_token: <Left_CommandSub "$("> spids: [189 198] ) } spids: [188] ) ] spids: [188] ) (Case to_match: {($ VSub_Name "$x")} arms: [ (case_arm pat_list: [{(Lit_Other "?") (Lit_Other "*")}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:arg) op: Equal rhs: { (BracedVarSub token: <VSub_Name x> suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {($ VSub_Name "$PWD") (Lit_Slash /)} ) spids: [213 218] ) } spids: [212] ) ] spids: [212] ) ] spids: [208 210 220 -1] ) ] spids: [201 205 223] ) ] spids: [184 185 226 -1] ) ] spids: [156 160 229] ) ] spids: [154 232] ) (C {(argv) (Lit_Other "[") (argc) (Lit_Other "]") (Lit_Other "=") ($ VSub_Name "$arg")}) (DParen child: (BinaryAssign op_id: Arith_PlusEqual left: (LhsName name:argc) right: (ArithWord w:{(Lit_Digits 1)}) ) ) ] spids: [138 250] ) spids: [-1 -1] ) (C {(DQ ($ VSub_Name "$command"))} { (DQ (BracedVarSub token:<VSub_Name argv> bracket_op:(WholeArray op_id:Lit_At) spids:[257262])) } ) ] )