(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PATH='> name:PATH) op: assign_op.Equal rhs: {<'/usr/lib/spell'> <Id.Lit_Colon ':'> <'/usr/bin'> <Id.Lit_Colon ':'> ($ Id.VSub_DollarName PATH) } spids: [89] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SPELLPROG='> name:SPELLPROG) op: assign_op.Equal rhs: {<'/usr/lib/spell/spellprog'>} spids: [97] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'H_SPELL='> name:H_SPELL) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name H_SPELL> var_name: H_SPELL suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<Id.Lit_Slash '/'> <var> <Id.Lit_Slash '/'> <adm> <Id.Lit_Slash '/'> <spellhist>} ) right: <Id.Right_DollarBrace '}'> ) } spids: [101] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'V_SPELL='> name:V_SPELL) op: assign_op.Equal rhs: {<'/dev/null'>} spids: [113] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'F_SPELL='> name:F_SPELL) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [116] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FT_SPELL='> name:FT_SPELL) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [118] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'B_SPELL='> name:B_SPELL) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [120] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'L_SPELL='> name:L_SPELL) op: assign_op.Equal rhs: { (DQ <'/usr/bin/sed -e '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'/^[.\'].*[.\'][ \t]*nx[ \t]*'> <Id.Lit_BadBackslash '\\'> <'/usr'> <Id.Lit_BadBackslash '\\'> <'/lib/d'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' -e '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'/^[.\'].*[.\'][ \t]*so[ \t]*'> <Id.Lit_BadBackslash '\\'> <'/usr'> <Id.Lit_BadBackslash '\\'> <'/lib/d'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' -e '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'/^[.\'][ \t]*so[ \t]*'> <Id.Lit_BadBackslash '\\'> <'/usr'> <Id.Lit_BadBackslash '\\'> <'/lib/d'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' -e '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <'/^[.\'][ \t]*nx[ \t]*'> <Id.Lit_BadBackslash '\\'> <'/usr'> <Id.Lit_BadBackslash '\\'> <'/lib/d'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') <' '> ) } spids: [122] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LOCAL='> name:LOCAL) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [160] ) ] redirects: [] ) (command.ShFunction name: mktmpdir body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tmpdir='> name:tmpdir) op: assign_op.Equal rhs: {<'/tmp/spell.'> ($ Id.VSub_Dollar '$')} spids: [185] ) ] redirects: [] ) (C {<trap>} {(DQ <'/usr/bin/rm -rf '> ($ Id.VSub_DollarName tmpdir) <'; exit'>)} {<0>} {<1>} {<2>} {<13>} {<15>} ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<'/usr/bin/mkdir'>} {<-m>} {<700>} {($ Id.VSub_DollarName tmpdir)}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (C {<mktmpdir>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<-x>} {<'/usr/bin/deroff'>} {<Id.Lit_RBracket ']'>}) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DEROFF='> name:DEROFF) op: assign_op.Equal rhs: { (DQ <'deroff '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <I_SPELL> ) } spids: [245] ) ] redirects: [] ) ] spids: [232 242] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'DEROFF='> name:DEROFF) op: assign_op.Equal rhs: {(DQ <cat>)} spids: [255] ) ] redirects: [] ) ] redirects: [] ) (C {<set>} {<-A>} {<args>} {<xxx>} {(DQ ($ Id.VSub_At '@'))}) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<x> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name args> var_name: args bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName OPTIND)}) suffix_op: (suffix_op.Unary op:<Id.VOp1_Pound '#'> arg_word:{<Id.Lit_Other '+'>}) right: <Id.Right_DollarBrace '}'> ) } {<Id.Lit_Equals '='>} {<x> (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name args> var_name: args bracket_op: (bracket_op.ArrayIndex expr:{($ Id.VSub_DollarName OPTIND)}) right: <Id.Right_DollarBrace '}'> ) } {<Id.Lit_RBracket ']'>} ) (C {<getopts>} {<ablvxi>} {<A>}) ] ) ] ) body: (command.DoGroup children: [ (command.Case to_match: {($ Id.VSub_DollarName A)} arms: [ (case_arm pat_list: [{<v>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<-r>} {<'/bin/pdp11'>} {<Id.Lit_RBracket ']'>} ) (C {<'/bin/pdp11'>}) ] ) ] ) action: [ (command.Simple words: [ {<gettext>} { (DQ <'spell: -v option not supported on pdp11'> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] more_env: [] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'EXIT_SPELL='> name: EXIT_SPELL ) op: assign_op.Equal rhs: {(DQ <'exit 1'>)} spids: [355] ) ] redirects: [] ) ] spids: [325 341] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'B_SPELL='> name:B_SPELL) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName B_SPELL) <' -v'>)} spids: [363] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'V_SPELL='> name:V_SPELL) op: assign_op.Equal rhs: {($ Id.VSub_DollarName tmpdir) <'/spell.'> ($ Id.VSub_Dollar '$')} spids: [370] ) ] redirects: [] ) ] redirects: [] ) ] spids: [322 323 378 -1] ) (case_arm pat_list: [{<b>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'D_SPELL='> name:D_SPELL) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name LB_SPELL> var_name: LB_SPELL suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<Id.Lit_Slash '/'> <usr> <Id.Lit_Slash '/'> <lib> <Id.Lit_Slash '/'> <spell> <Id.Lit_Slash '/'> <hlistb> } ) right: <Id.Right_DollarBrace '}'> ) } spids: [384] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'B_SPELL='> name:B_SPELL) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName B_SPELL) <' -b'>)} spids: [399] ) ] redirects: [] ) ] spids: [381 382 405 -1] ) (case_arm pat_list: [{<x>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'B_SPELL='> name:B_SPELL) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName B_SPELL) <' -x'>)} spids: [411] ) ] redirects: [] ) ] spids: [408 409 417 -1] ) (case_arm pat_list: [{<l>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'L_SPELL='> name:L_SPELL) op: assign_op.Equal rhs: {(DQ <cat>)} spids: [423] ) ] redirects: [] ) ] spids: [420 421 428 -1] ) (case_arm pat_list: [{<i>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'I_SPELL='> name:I_SPELL) op: assign_op.Equal rhs: {(DQ <-i>)} spids: [434] ) ] redirects: [] ) ] spids: [431 432 439 -1] ) (case_arm pat_list: [{<Id.Lit_QMark '?'>}] action: [ (command.Simple words: [ {<gettext>} { (DQ <'Usage: spell [-bvxli] [+local_file] [files...]'> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] more_env: [] do_fork: T ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [442 443 460 -1] ) ] redirects: [] ) ] ) redirects: [] ) (C {<shift>} { (word_part.ArithSub anode: (arith_expr.Binary op_id: Id.Arith_Minus left: {($ Id.VSub_DollarName OPTIND)} right: {<Id.Lit_Digits 1>} ) ) } ) (command.ForEach iter_names: [A] iterable: (for_iter.Words words:[{($ Id.VSub_Star '*')}]) body: (command.DoGroup children: [ (command.Case to_match: {($ Id.VSub_DollarName A)} arms: [ (case_arm pat_list: [{<Id.Lit_Other '+'> <Id.Lit_Star '*'>}] action: [ (command.Sentence child: (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName FIRSTPLUS))} {<Id.Lit_Equals '='>} {(DQ <'+'>)} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.Simple words: [ {<gettext>} { (DQ < 'spell: multiple + options in spell, all but the last are ignored' > ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] more_env: [] do_fork: T ) ] spids: [501 518] ) ] else_action: [] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FIRSTPLUS='> name:FIRSTPLUS) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName FIRSTPLUS)) <Id.Lit_Other '+'>} spids: [534] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'LOCAL='> name: LOCAL ) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Simple words: [ {<expr>} {($ Id.VSub_DollarName A)} {<Id.Lit_Colon ':'>} {(SQ <'+\\(.*\\)'>)} ] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) right: <Id.Backtick_Right '`'> ) } spids: [543] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<test>} {<Id.KW_Bang '!'>} {<-r>} {($ Id.VSub_DollarName LOCAL)} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Sentence child: (command.Simple words: [ {<printf>} { (DQ (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<gettext>} {(SQ <'spell: Cannot read %s'>)}) right: <Id.Backtick_Right '`'> ) <Id.Lit_BadBackslash '\\'> <n> ) } {(DQ ($ Id.VSub_DollarName LOCAL))} ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] more_env: [] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'EXIT_SPELL='> name: EXIT_SPELL ) op: assign_op.Equal rhs: {(DQ <'exit 1'>)} spids: [607] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) ] spids: [569 581] ) ] else_action: [] redirects: [] ) ] spids: [541 567] ) ] else_action: [ (command.Sentence child: (command.Simple words: [ {<gettext>} { (DQ <'spell: Cannot identify local spell file'> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] more_env: [] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'EXIT_SPELL='> name: EXIT_SPELL ) op: assign_op.Equal rhs: {(DQ <'exit 1'>)} spids: [631] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) ] redirects: [] ) ] spids: [497 499 640 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FT_SPELL='> name:FT_SPELL) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName FT_SPELL) <' '> ($ Id.VSub_DollarName A))} spids: [646] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-r>} {($ Id.VSub_DollarName A)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'F_SPELL='> name: F_SPELL ) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName F_SPELL) <' '> ($ Id.VSub_DollarName A)) } spids: [668] ) ] redirects: [] ) ] spids: [654 665] ) ] else_action: [ (command.Simple words: [ {<printf>} { (DQ (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<gettext>} {(SQ <'spell: Cannot read file %s'>)}) right: <Id.Backtick_Right '`'> ) <Id.Lit_BadBackslash '\\'> <n> ) } {(DQ ($ Id.VSub_DollarName A))} ] redirects: [ (redir op: <Id.Redir_GreatAnd '1>&'> loc: (redir_loc.Fd fd:1) arg: {<2>} ) ] more_env: [] do_fork: T ) ] redirects: [] ) ] spids: [643 644 -1 706] ) ] redirects: [] ) ] ) redirects: [] ) (C { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name EXIT_SPELL> var_name: EXIT_SPELL suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:{<':'>}) right: <Id.Right_DollarBrace '}'> ) } ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ <x> ($ Id.VSub_DollarName FT_SPELL))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <x> ($ Id.VSub_DollarName F_SPELL))} {<Id.Lit_RBracket ']'>} ) (C {<Id.Lit_LBracket '['>} {(DQ <x> ($ Id.VSub_DollarName F_SPELL))} {<Id.Lit_Equals '='>} {(DQ <x>)} {<Id.Lit_RBracket ']'>} ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [(command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})] spids: [717 754] ) ] else_action: [] redirects: [] ) (command.Pipeline children: [ (command.Subshell child: (command.CommandList children: [ (command.Sentence child: (C {<cat>} {($ Id.VSub_DollarName F_SPELL)}) terminator: <Id.Op_Semi _> ) (command.Sentence child: (C {<printf>} {(DQ <Id.Lit_BadBackslash '\\'> <n>)}) terminator: <Id.Op_Semi _> ) ] ) redirects: [] ) (C {<eval>} {($ Id.VSub_DollarName L_SPELL)}) (C {<eval>} {($ Id.VSub_DollarName DEROFF)}) (command.Simple words: [ {<'/usr/bin/tr'>} {<-cs>} { (DQ <'[A-Z][a-z][0-9]'> <Id.Lit_BadBackslash '\\'> <'\''> <Id.Lit_BadBackslash '\\'> <'&'> <Id.Lit_BadBackslash '\\'> <.> <Id.Lit_BadBackslash '\\'> <','> <Id.Lit_BadBackslash '\\'> <';'> <Id.Lit_BadBackslash '\\'> <'?'> <Id.Lit_BadBackslash '\\'> <':'> ) } {(DQ <'['> <Id.Lit_BadBackslash '\\'> <'012*]'>)} ] redirects: [] more_env: [(env_pair name:LC_ALL val:{<C>} spids:[795])] do_fork: T ) (C {<'/usr/bin/sed'>} {(SQ <'1,$s/^[^A-Za-z0-9]*//'>)}) (C {<'/usr/bin/sed'>} {(SQ <'1,$s/[^A-Za-z0-9]*$//'>)}) (C {<'/usr/bin/sed'>} {<-n>} {(DQ <'/[A-Za-z]/p'>)}) (C {<'/usr/bin/sort'>} {<-u>} {<Id.Lit_Other '+'> <0>}) (C {($ Id.VSub_DollarName SPELLPROG)} { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name S_SPELL> var_name: S_SPELL suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<Id.Lit_Slash '/'> <usr> <Id.Lit_Slash '/'> <lib> <Id.Lit_Slash '/'> <spell> <Id.Lit_Slash '/'> <hstop> } ) right: <Id.Right_DollarBrace '}'> ) } {<1>} ) (C {($ Id.VSub_DollarName SPELLPROG)} {($ Id.VSub_DollarName B_SPELL)} { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name D_SPELL> var_name: D_SPELL suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<Id.Lit_Slash '/'> <usr> <Id.Lit_Slash '/'> <lib> <Id.Lit_Slash '/'> <spell> <Id.Lit_Slash '/'> <hlista> } ) right: <Id.Right_DollarBrace '}'> ) } {($ Id.VSub_DollarName V_SPELL)} ) (C {<comm>} {<-23>} {<->} { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name LOCAL> var_name: LOCAL suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<Id.Lit_Slash '/'> <dev> <Id.Lit_Slash '/'> <null>} ) right: <Id.Right_DollarBrace '}'> ) } ) (C {<tee>} {<-a>} {($ Id.VSub_DollarName H_SPELL)}) ] negated: F stderr_indices: [] ) (command.Simple words: [{<'/usr/bin/who'>} {<am>} {<i>}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName H_SPELL)} ) (redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>}) ] more_env: [] do_fork: T ) (command.Case to_match: {($ Id.VSub_DollarName V_SPELL)} arms: [ (case_arm pat_list: [{<'/dev/null'>}] action: [(command.ControlFlow token:<Id.ControlFlow_Exit exit>)] spids: [950 951 -1 956] ) ] redirects: [] ) (command.Pipeline children: [ (C {<'/usr/bin/sed'>} {(SQ <'/^\\./d'>)} {($ Id.VSub_DollarName V_SPELL)}) (C {<'/usr/bin/sort'>} {<-u>} {<Id.Lit_Other '+'> <1f>} {<Id.Lit_Other '+'> <0>}) ] negated: F stderr_indices: [] ) ] )