(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:all) op: assign_op.Equal rhs: {(SQ <'exit 0'>)} spids: [31] ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_Number '$1'))} arms: [ (case_arm pat_list: [{<-a>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:all) op: assign_op.Equal rhs: {(DQ <'found=\'exit 0\''>)} spids: [48] ) ] ) (C {<shift>}) ] spids: [45 46 -1 56] ) ] ) (command.Case to_match: {($ Id.VSub_Pound '$#') <Id.Lit_Colon ':'> ($ Id.VSub_Number '$0')} arms: [ (case_arm pat_list: [{<1> <Id.Lit_Colon ':'> <Id.Lit_Star '*'> <whatis>}] spids: [67 71 74 -1] ) (case_arm pat_list: [{<1> <Id.Lit_Colon ':'> <Id.Lit_Star '*'> <apropos>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:all) op: assign_op.Equal rhs: {(DQ <'found=\'exit 0\''>)} spids: [83] ) ] ) ] spids: [76 80 89 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.Simple words: [ {<echo>} { (DQ <'Usage: '> (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<basename>} {($ Id.VSub_Number '$0')}) ) <' [-a] <keyword>'> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [91 92 -1 116] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:IFS) op: assign_op.Equal rhs: {(DQ <':'> ($ Id.VSub_DollarName '$IFS'))} spids: [119] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:MANPATH) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: <Id.VSub_Name MANPATH> suffix_op: (suffix_op.Unary tok: <Id.VTest_Hyphen -> arg_word: {<Id.Lit_Slash '/'> <usr> <Id.Lit_Slash '/'> <local> <Id.Lit_Slash '/'> <'man:'> <Id.Lit_Slash '/'> <usr> <Id.Lit_Slash '/'> <man> } ) ) ) } spids: [125] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:found) op: assign_op.Equal rhs: (word.Empty) spids: [144] ) ] ) (command.ForEach iter_name: m iter_words: [{($ Id.VSub_DollarName '$MANPATH')}] do_arg_iter: F body: (command.DoGroup children: [ (command.ForEach iter_name: w iter_words: [{($ Id.VSub_DollarName '$m') <'/whatis'>}] do_arg_iter: F body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} {<-f>} {($ Id.VSub_DollarName '$w')}) (command.ControlFlow token: <Id.ControlFlow_Continue continue> ) ] ) (command.Case to_match: {($ Id.VSub_Number '$0')} arms: [ (case_arm pat_list: [{<Id.Lit_Star '*'> <whatis>}] action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<grep>} {(SQ <'^\\('>) ($ Id.VSub_Number '$1') (SQ <'\\|[^(]* '>) ($ Id.VSub_Number '$1') (SQ <'\\)[ ,][^(]*('>) } {($ Id.VSub_DollarName '$w')} ) (C {<eval>} {($ Id.VSub_DollarName '$all')}) ] ) ] spids: [190 192 218 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'> <apropos>}] action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<grep>} {<-i>} {(DQ ($ Id.VSub_Number '$1'))} {($ Id.VSub_DollarName '$w')} ) (C {<eval>} {($ Id.VSub_DollarName '$all')}) ] ) ] spids: [221 223 -1 243] ) ] ) ] ) ) ] ) ) (C {($ Id.VSub_DollarName '$found')}) (command.Simple words: [ {<echo>} { (DQ (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<basename>} {($ Id.VSub_Number '$0')}) ) <': '> ($ Id.VSub_Number '$1') <': not found'> ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] )