(CommandList children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:IFS) op:Equal rhs:{(DQ (':'))} spids:[10])] spids: [10] ) (Sentence child: (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:count) op:Equal rhs:{(0)} spids:[15])] spids: [15] ) terminator: <Op_Semi ';'> ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:nonex) op:Equal rhs:{(0)} spids:[20])] spids: [20] ) (ForEach iter_name: directory iter_words: [{($ VSub_Name '$PATH')}] do_arg_iter: F body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-d)} {(DQ ($ VSub_Name '$directory'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (ForEach iter_name: command iter_words: [{(DQ ($ VSub_Name '$directory')) (/) (Lit_Other '*')}] do_arg_iter: F body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-x)} {(DQ ($ VSub_Name '$command'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:count) op: Equal rhs: { (DQ (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithWord w:{($ VSub_Name '$count')}) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [90 99] ) ) } spids: [88] ) ] spids: [88] ) ] spids: [16777215 85] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:nonex) op: Equal rhs: { (DQ (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithWord w:{($ VSub_Name '$nonex')}) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [108 117] ) ) } spids: [106] ) ] spids: [106] ) ] spids: [103 121] ) ] spids: [67 124] ) spids: [58 65] ) ] spids: [16777215 50] ) ] spids: [16777215 127] ) ] spids: [33 129] ) spids: [28 31] ) (C {(echo)} { (DQ ($ VSub_Name '$count') (' commands, and ') ($ VSub_Name '$nonex') (" entries that weren't executable") ) } ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)}) ] )