(CommandList children: [ (C {(Lit_Other ":")} {(mkdir)} {(KW_For for)} {(systems)} {(that)} {(KW_Do do)} {(not)} {(support)} {(-p)} {(Lit_Other ":")} {(2002-09-01)} {(Lit_Other ":")} ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:MKDIR) op:Equal rhs:{(/bin/mkdir)} spids:[84])] spids: [84] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:CHMOD) op:Equal rhs:{(chmod)} spids:[87])] spids: [87] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:mode) op:Equal rhs:{(SQ )} spids:[90])] spids: [90] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:parents) op:Equal rhs:{(SQ )} spids:[92])] spids: [92] ) (While cond: [(C {(Lit_Other ":")})] body: (DoGroup children: [ (Case to_match: {($ VSub_Number "$1")} arms: [ (case_arm pat_list: [{(-m)}] action: [ (Case to_match: {($ VSub_Pound "$#")} arms: [ (case_arm pat_list: [{(1)}] action: [ (SimpleCommand words: [{(echo)} {(DQ ("mkdir: -m: mode argument expected"))}] redirects: [ (Redir op_id: Redir_GreatAnd fd: -1 arg_word: {(2)} spids: [126] ) ] ) (C {(exit)} {(1)}) ] spids: [117 118 135 -1] ) ] spids: [110 114 138] ) (C {(shift)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:mode) op: Equal rhs: {($ VSub_Number "$1")} spids: [144] ) ] spids: [144] ) ] spids: [107 108 148 -1] ) (case_arm pat_list: [{(-m) (Lit_Other "*")}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:mode) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(X) ($ VSub_Number "$1")}) (C {(sed)} {(SQ <s/X-m//>)}) ] negated: False ) ] ) left_token: <Left_Backtick "`"> spids: [156 169] ) } spids: [155] ) ] spids: [155] ) ] spids: [151 153 172 -1] ) (case_arm pat_list: [{(-p)}] action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:parents) op:Equal rhs:{(1)} spids:[178])] spids: [178] ) ] spids: [175 176 182 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [(ControlFlow token:<ControlFlow_Break break>)] spids: [185 186 191 -1] ) ] spids: [100 104 194] ) (C {(shift)}) ] spids: [98 199] ) ) (If arms: [ (if_arm cond: [(C {(test)} {(DQ )} {(KW_Bang "!") (Lit_Other "=")} {(DQ ($ VSub_Name "$parents"))})] action: [ (ForEach iter_name: d do_arg_iter: True body: (DoGroup children: [ (If arms: [ (if_arm cond: [(C {(test)} {(KW_Bang "!")} {(-d)} {($ VSub_Name "$d")})] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ifs) op: Equal rhs: { (BracedVarSub token: <VSub_Name IFS> suffix_op: (StringUnary op_id: VTest_Hyphen arg_word: {(SQ <"\n"> <"\t ">)} ) spids: [238 245] ) } spids: [237] ) ] spids: [237] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:IFS) op: Equal rhs: {(/)} spids: [248] ) ] spids: [248] ) (C {(set)} {(SQ )} {($ VSub_Name "$d")}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:IFS) op: Equal rhs: {($ VSub_Name "$ifs")} spids: [260] ) ] spids: [260] ) (C {(shift)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:dir) op: Equal rhs: {($ VSub_Number "$1")} spids: [267] ) ] spids: [267] ) (C {(shift)}) (If arms: [ (if_arm cond: [ (C {(test)} {(-n)} {(DQ ($ VSub_Name "$dir"))} {(-a)} {(KW_Bang "!")} {(-d)} {(DQ ($ VSub_Name "$dir"))} ) ] action: [ (AndOr children: [ (C {($ VSub_Name "$MKDIR")} {(DQ ($ VSub_Name "$dir"))}) (C {(exit)} {(1)}) ] op_id: Op_DPipe ) (If arms: [ (if_arm cond: [ (C {(test)} {(DQ )} {(KW_Bang "!") (Lit_Other "=")} {(DQ ($ VSub_Name "$mode"))} ) ] action: [ (AndOr children: [ (C {($ VSub_Name "$CHMOD")} {(DQ ($ VSub_Name "$mode"))} {(DQ ($ VSub_Name "$dir"))} ) (C {(exit)} {(1)}) ] op_id: Op_DPipe ) ] spids: [-1 325] ) ] spids: [-1 344] ) ] spids: [-1 295] ) ] spids: [-1 347] ) (ForEach iter_name: d do_arg_iter: True body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:dir) op: Equal rhs: {($ VSub_Name "$dir") (/) ($ VSub_Name "$d")} spids: [357] ) ] spids: [357] ) (If arms: [ (if_arm cond: [ (C {(test)} {(KW_Bang "!")} {(-d)} {(DQ ($ VSub_Name "$dir"))}) ] action: [ (AndOr children: [ (C {($ VSub_Name "$MKDIR")} {(DQ ($ VSub_Name "$dir"))}) (C {(exit)} {(1)}) ] op_id: Op_DPipe ) (If arms: [ (if_arm cond: [ (C {(test)} {(DQ )} {(KW_Bang "!") (Lit_Other "=")} {(DQ ($ VSub_Name "$mode"))} ) ] action: [ (AndOr children: [ (C {($ VSub_Name "$CHMOD")} {(DQ ($ VSub_Name "$mode"))} {(DQ ($ VSub_Name "$dir"))} ) (C {(exit)} {(1)}) ] op_id: Op_DPipe ) ] spids: [-1 406] ) ] spids: [-1 425] ) ] spids: [-1 376] ) ] spids: [-1 428] ) ] spids: [355 431] ) spids: [-1 -1] ) ] spids: [-1 235] ) ] spids: [-1 434] ) ] spids: [222 437] ) spids: [-1 -1] ) ] spids: [-1 215] ) ] else_action: [ (AndOr children: [(C {($ VSub_Name "$MKDIR")} {(DQ ($ VSub_At "$@"))}) (C {(exit)} {(1)})] op_id: Op_DPipe ) (If arms: [ (if_arm cond: [(C {(test)} {(DQ )} {(KW_Bang "!") (Lit_Other "=")} {(DQ ($ VSub_Name "$mode"))})] action: [ (ForEach iter_name: d do_arg_iter: True body: (DoGroup children: [ (AndOr children: [ (C {($ VSub_Name "$CHMOD")} {(DQ ($ VSub_Name "$mode"))} {(DQ ($ VSub_Name "$d"))} ) (C {(exit)} {(1)}) ] op_id: Op_DPipe ) ] spids: [476 495] ) spids: [-1 -1] ) ] spids: [-1 469] ) ] spids: [-1 498] ) ] spids: [439 500] ) (C {(exit)} {(0)}) ] )