(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:IFS) op: assign_op.Equal rhs: {(DQ (':'))} spids: [10] ) ] ) (command.CommandList children: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:count) op: assign_op.Equal rhs: {(0)} spids: [15] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:18) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:nonex) op: assign_op.Equal rhs: {(0)} spids: [20] ) ] ) ] ) (command.ForEach iter_name: directory iter_words: [{($ Id.VSub_DollarName '$PATH')}] do_arg_iter: F body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-d)} {(DQ ($ Id.VSub_DollarName '$directory'))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:48) ) ] action: [ (command.ForEach iter_name: command iter_words: [{(DQ ($ Id.VSub_DollarName '$directory')) (/) (Id.Lit_Star '*')}] do_arg_iter: F body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-x)} {(DQ ($ Id.VSub_DollarName '$command'))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:83) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:count) op: assign_op.Equal rhs: { (DQ (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.ArithWord w: {($ Id.VSub_DollarName '$count')} ) right: (arith_expr.ArithWord w: {(Id.Lit_Digits 1)} ) ) ) ) } spids: [88] ) ] ) ] spids: [71 85] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:nonex) op: assign_op.Equal rhs: { (DQ (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Plus left: (arith_expr.ArithWord w: {($ Id.VSub_DollarName '$nonex')} ) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)}) ) ) ) } spids: [106] ) ] ) ] ) ] ) ) ] spids: [36 50] ) ] ) ] ) ) (C {(echo)} { (DQ ($ Id.VSub_DollarName '$count') (' commands, and ') ($ Id.VSub_DollarName '$nonex') (" entries that weren't executable") ) } ) (command.ControlFlow token:(Token id:Id.ControlFlow_Exit val:exit span_id:142) arg_word:{(0)}) ] )