(command.CommandList children: [ (C {(Id.Lit_Other ':')}) (command.CommandList children: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:re) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [2] ) ] ) terminator: (Token id:Id.Op_Semi val:';' span_id:4) ) (C {(shift)}) ] ) (command.ForEach iter_name: lib iter_words: [{($ Id.VSub_Star '$*')}] do_arg_iter: F body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:found) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:21) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(nm)} {($ Id.VSub_DollarName '$lib')}) (C {(egrep)} {(DQ ($ Id.VSub_DollarName '$re'))}) ] negated: F ) ] ) ) } spids: [20] ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$found'))} arms: [ (case_arm pat_list:[{(DQ )}] spids:[47 49 51 -1]) (case_arm pat_list: [{(Id.Lit_Star '*')}] action: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$lib') (': ') ($ Id.VSub_DollarName '$found'))} ) ] spids: [54 55 64 -1] ) ] ) ] ) ) ] )