(command.CommandList children: [ (command.ShFunction keyword: <Id.KW_Function function> name_tok: <err_exit> name: err_exit body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <print> more_env: [] words: [{<print>} {<-u2>} {<-n>} {(DQ <Id.Lit_BadBackslash '\\'> <t>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <print> more_env: [] words: [ {<print>} {<-u2>} {<-r>} {(${ Id.VSub_Name Command) <Id.Lit_LBracket '['> ($ Id.VSub_Number 1) <Id.Lit_RBracket ']'> <Id.Lit_Colon ':'> } { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_At '@'> var_name: '@' suffix_op: (suffix_op.Slice begin:{<Id.Lit_Digits 2>}) right: <Id.Arith_RBrace _> ) ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <let> more_env: [] words: [{<let>} {<Id.Lit_VarLike 'Errors+='> <1>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.Simple blame_tok: <alias> more_env: [] words: [{<alias>} {<Id.Lit_VarLike 'err_exit='> (SQ <'err_exit $LINENO'>)}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'Command='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'Command='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Command='> name:Command) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Number 0> var_name: 0 suffix_op: (suffix_op.Unary op: <Id.VOp1_DPound '##'> arg_word: {<Id.Lit_Other '*'> <Id.Lit_Slash '/'>} ) right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) (command.Simple blame_tok: <integer> more_env: [] words: [{<integer>} {<Id.Lit_VarLike 'Errors='> <0>}] redirects: [] do_fork: T ) (command.AndOr children: [ (command.ShAssignment left: <Id.Lit_VarLike 'tmp='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'tmp='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'tmp='> name:tmp) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <mktemp> more_env: [] words: [{<mktemp>} {<-dt>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Sentence child: (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {<mktemp>} {<-dt>} {<failed>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) (command.Sentence child: (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>}) terminator: <Id.Op_Semi _> ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok: <trap> more_env: [] words: [{<trap>} {(DQ <'cd /; rm -rf '> ($ Id.VSub_DollarName tmp))} {<EXIT>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'r='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'r='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'r='> name:r) op: assign_op.Equal rhs: {<readonly>} ) (AssignPair left: <Id.Lit_VarLike 'u='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'u='> name:u) op: assign_op.Equal rhs: {<Uppercase>} ) (AssignPair left: <Id.Lit_VarLike 'l='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'l='> name:l) op: assign_op.Equal rhs: {<Lowercase>} ) (AssignPair left: <Id.Lit_VarLike 'i='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i) op: assign_op.Equal rhs: {<22>} ) (AssignPair left: <Id.Lit_VarLike 'i8='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i8='> name:i8) op: assign_op.Equal rhs: {<10>} ) (AssignPair left: <Id.Lit_VarLike 'L='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'L='> name:L) op: assign_op.Equal rhs: {<abc>} ) (AssignPair left: <Id.Lit_VarLike 'L5='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'L5='> name:L5) op: assign_op.Equal rhs: {<def>} ) (AssignPair left: <Id.Lit_VarLike 'uL5='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'uL5='> name:uL5) op: assign_op.Equal rhs: {<abcdef>} ) (AssignPair left: <Id.Lit_VarLike 'xi='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'xi='> name:xi) op: assign_op.Equal rhs: {<20>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'x='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'x='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x) op: assign_op.Equal rhs: {<export>} ) (AssignPair left: <Id.Lit_VarLike 't='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 't='> name:t) op: assign_op.Equal rhs: {<tagged>} ) (AssignPair left: <Id.Lit_VarLike 'H='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'H='> name:H) op: assign_op.Equal rhs: {<hostname>} ) (AssignPair left: <Id.Lit_VarLike 'LZ5='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LZ5='> name:LZ5) op: assign_op.Equal rhs: {<026>} ) (AssignPair left: <Id.Lit_VarLike 'RZ5='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'RZ5='> name:RZ5) op: assign_op.Equal rhs: {<026>} ) (AssignPair left: <Id.Lit_VarLike 'Z5='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'Z5='> name:Z5) op: assign_op.Equal rhs: {<123>} ) (AssignPair left: <Id.Lit_VarLike 'lR5='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'lR5='> name:lR5) op: assign_op.Equal rhs: {<ABcdef>} ) (AssignPair left: <Id.Lit_VarLike 'R5='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'R5='> name:R5) op: assign_op.Equal rhs: {<def>} ) (AssignPair left: <Id.Lit_VarLike 'n='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'n='> name:n) op: assign_op.Equal rhs: {<l>} ) ] redirects: [] ) (command.ForEach keyword: <Id.KW_For for> iter_names: [option] iterable: (for_iter.Words words: [ {<u>} {<l>} {<i>} {<i8>} {<L>} {<L5>} {<LZ5>} {<RZ5>} {<Z5>} {<r>} {<x>} {<H>} {<t>} {<R5>} {<uL5>} {<lR5>} {<xi>} {<n>} ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-> ($ Id.VSub_DollarName option)} {($ Id.VSub_DollarName option)}] redirects: [] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.AndOr children: [ (command.Subshell left: <Id.Op_LParen _> child: (command.ShAssignment left: <Id.Lit_VarLike 'r='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'r='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'r='> name:r) op: assign_op.Equal rhs: {<newval>} ) ] redirects: [] ) right: <Id.Right_Subshell _> redirects: [(Redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {<readonly>} {<attribute>} {<fails>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.ShAssignment left: <Id.Lit_VarLike 'i='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'i='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'i='> name:i) op: assign_op.Equal rhs: {<i> <Id.Lit_Other '+'> <5>} ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.DParen left: <Id.Op_DLeftParen _> child: (arith_expr.Binary op_id: Id.Arith_NEqual left: ($ Id.Lit_ArithVarLike i) right: {<Id.Lit_Digits 27>} ) right: <Id.Op_DRightParen _> redirects: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {<integer>} {<attributes>} {<fails>}] redirects: [] do_fork: T ) ] spids: [296 307] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_DollarName i8)} right: {<8> <Id.Lit_Pound '#'> <12>} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {<integer>} {<base>} {<8>} {<fails>}] redirects: [] do_fork: T ) ] spids: [319 333] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_DollarName u)} right: {<UPPERCASE>} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {<uppercase>} {<fails>}] redirects: [] do_fork: T ) ] spids: [347 359] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_DollarName l)} right: {<lowercase>} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {<lowercase>} {<fails>}] redirects: [] do_fork: T ) ] spids: [369 381] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_DollarName n)} right: {<lowercase>} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {<reference>} {<variables>} {<fail>}] redirects: [] do_fork: T ) ] spids: [391 403] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {<t> <Id.BoolBinary_GlobEqual '='> <tagged>} right: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-t>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {<tagged>} {<fails>}] redirects: [] do_fork: T ) ] spids: [415 433] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {<t>} right: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<Id.Lit_Other '+'> <t>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {<tagged>} {<fails>}] redirects: [] do_fork: T ) ] spids: [443 460] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_DollarName Z5)} right: {<00123>} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {<zerofill>} {<fails>}] redirects: [] do_fork: T ) ] spids: [470 482] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_DollarName RZ5)} right: {<00026>} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {<right>} {<zerofill>} {<fails>}] redirects: [] do_fork: T ) ] spids: [492 504] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'L='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'L='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'L='> name:L) op: assign_op.Equal rhs: {<12345>} ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_DollarName L)} right: {<123>} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {<leftjust>} {<fails>}] redirects: [] do_fork: T ) ] spids: [519 531] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_DollarName L5)} right: {(DQ <'def '>)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {<leftjust>} {<fails>}] redirects: [] do_fork: T ) ] spids: [541 555] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_DollarName uL5)} right: {<ABCDE>} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {<leftjust>} {<uppercase>} {<fails>}] redirects: [] do_fork: T ) ] spids: [565 577] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_DollarName lR5)} right: {<bcdef>} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {<rightjust>} {<fails>}] redirects: [] do_fork: T ) ] spids: [589 601] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_DollarName R5)} right: {(DQ <' def'>)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {<rightjust>} {<fails>}] redirects: [] do_fork: T ) ] spids: [611 625] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <Id.VSub_DollarName '$SHELL'> more_env: [] words: [{($ Id.VSub_DollarName SHELL)} {<-c>} {(SQ <'echo $x'>)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } right: {<export>} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {<export>} {<fails>}] redirects: [] do_fork: T ) ] spids: [635 655] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <Id.VSub_DollarName '$SHELL'> more_env: [] words: [{($ Id.VSub_DollarName SHELL)} {<-c>} {(SQ <'xi=xi+4;echo $xi'>)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } right: {<24>} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {<export>} {<attributes>} {<fails>}] redirects: [] do_fork: T ) ] spids: [665 685] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'x='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'x='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <Id.VSub_DollarName '$SHELL'> more_env: [(EnvPair left:<Id.Lit_VarLike 'foo='> name:foo val:{<abc>})] words: [{($ Id.VSub_DollarName SHELL)}] redirects: [ (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<Id.KW_Bang '!'>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'\tfoo=bar\n'> <'\t'> ($ Id.VSub_DollarName SHELL) <' -c \'print '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'foo\'\n'> ] ) ) ] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_DollarName x)} right: {<bar>} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'environment variables require re-export'>)}] redirects: [] do_fork: T ) ] spids: [717 729] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.AndOr children: [ (command.Subshell left: <Id.Op_LParen _> child: (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<Id.Lit_Other '+'>}] redirects: [] do_fork: T ) right: <Id.Right_Subshell _> redirects: [ (Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>}) (Redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>}) ] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'typeset + not working'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Subshell left: <Id.Op_LParen _> child: (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-L-5>} {<Id.Lit_VarLike 'buf='> (DQ <A>)}] redirects: [(Redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})] do_fork: T ) right: <Id.Right_Subshell _> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_QMark '?')} right: {<0>} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'typeset allows negative field for left/right adjust'>)}] redirects: [] do_fork: T ) ] spids: [775 787] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'a='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'a='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'a='> name:a) op: assign_op.Equal rhs: {<b>} ) ] redirects: [] ) (command.Simple blame_tok: <readonly> more_env: [] words: [{<readonly>} {($ Id.VSub_DollarName a) <Id.Lit_Equals '='> <foo>}] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {($ Id.VSub_DollarName b)} right: {<foo>} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'readonly $a=b not working'>)}] redirects: [] do_fork: T ) ] spids: [806 818] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <export> more_env: [] words: [{<export>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [{<grep>} {(SQ <'^PATH='>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } right: {<PATH> <Id.BoolBinary_GlobEqual '='> <Id.Lit_Other '*'>} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'export not working'>)}] redirects: [] do_fork: T ) ] spids: [828 852] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'picture='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'picture='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'picture='> name:picture) op: assign_op.Equal rhs: { (ShArrayLiteral left: <Id.Op_LParen _> words: [ {<Id.Lit_VarLike 'bitmap='> <'/fruit'>} {<Id.Lit_VarLike 'size='> (ShArrayLiteral left: <Id.Op_LParen _> words: [{<typeset>} {<-E>} {<Id.Lit_VarLike 'x='> <2.5>}] right: <Id.Right_ShArrayLiteral _> ) } ] right: <Id.Right_ShArrayLiteral _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'string='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'string='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'string='> name:string) op: assign_op.Equal rhs: { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <print> more_env: [] words: [{<print>} {($ Id.VSub_DollarName picture)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: {(DQ (${ Id.VSub_Name string))} right: {<Id.Lit_Other '*'> (SQ <'size=( typeset -E'>) <Id.Lit_Other '*'>} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'print of compound exponential variable not working'>)}] redirects: [] do_fork: T ) ] spids: [891 911] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'sz='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'sz='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'sz='> name:sz) op: assign_op.Equal rhs: { (ShArrayLiteral left: <Id.Op_LParen _> words: [{<typeset>} {<-E>} {<Id.Lit_VarLike 'y='> <2.2>}] right: <Id.Right_ShArrayLiteral _> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'string='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'string='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'string='> name:string) op: assign_op.Equal rhs: { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <print> more_env: [] words: [{<print>} {($ Id.VSub_DollarName sz)}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name sz))} right: {<Id.Lit_Other '*'> (SQ <'typeset -E -F'>) <Id.Lit_Other '*'>} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'print of exponential shows both -E and -F attributes'>)}] redirects: [] do_fork: T ) ] spids: [940 960] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <print> more_env: [] words: [{<print>} {(SQ <'typeset -i m=48/4+1;print -- $m'>)}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName tmp) <'/script'>} ) ] do_fork: T ) (command.Simple blame_tok: <chmod> more_env: [] words: [{<chmod>} {<Id.Lit_Other '+'> <x>} {($ Id.VSub_DollarName tmp) <'/script'>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-Z2>} {<m>}] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <Id.VSub_DollarName '$tmp'> more_env: [] words: [{($ Id.VSub_DollarName tmp) <'/script'>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } right: {<13>} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'attributes not cleared for script execution'>)}] redirects: [] do_fork: T ) ] spids: [995 1010] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <print> more_env: [] words: [{<print>} {(SQ <'print VAR=$VAR'>)}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName tmp) <'/script'>} ) ] do_fork: T ) (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-L70>} {<Id.Lit_VarLike 'VAR='> <Id.KW_Var var>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.VSub_DollarName '$tmp'> more_env: [] words: [{($ Id.VSub_DollarName tmp) <'/script'>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName tmp) <'/script.1'>} ) ] do_fork: T ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <Id.Redir_Less '<'> more_env: [] words: [] redirects: [ (Redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_DollarName tmp) <'/script.1'>} ) ] do_fork: F ) right: <Id.Eof_RParen _> ) } right: {<VAR> <Id.BoolBinary_GlobEqual '='>} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'typeset -L should not be inherited'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-Z>} {<Id.Lit_VarLike 'LAST='> <00>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <unset> more_env: [] words: [{<unset>} {<-f>} {<foo>}] redirects: [] do_fork: T ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <foo> name: foo body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.WordTest w:{($ Id.VSub_Number 1)}) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'LAST='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'LAST='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LAST='> name:LAST) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) ] redirects: [] ) ] spids: [1090 1099] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.DParen left: <Id.Op_DLeftParen _> child: (arith_expr.UnaryAssign op_id: Id.Node_PostDPlus child: ($ Id.Lit_ArithVarLike LAST) ) right: <Id.Op_DRightParen _> redirects: [] ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.Simple blame_tok:<foo> more_env:[] words:[{<foo>} {<1>}] redirects:[] do_fork:T) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.DParen left: <Id.Op_DLeftParen _> child: (arith_expr.Binary op_id: Id.Arith_NEqual left: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name LAST> var_name: LAST prefix_op: <Id.VSub_Pound '#'> right: <Id.Right_DollarBrace '}'> ) } right: {<Id.Lit_Digits 2>} ) right: <Id.Op_DRightParen _> redirects: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'LAST!=2'>)}] redirects: [] do_fork: T ) ] spids: [1122 1138] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok:<foo> more_env:[] words:[{<foo>}] redirects:[] do_fork:T) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.DParen left: <Id.Op_DLeftParen _> child: (arith_expr.Binary op_id: Id.Arith_NEqual left: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name LAST> var_name: LAST prefix_op: <Id.VSub_Pound '#'> right: <Id.Right_DollarBrace '}'> ) } right: {<Id.Lit_Digits 2>} ) right: <Id.Op_DRightParen _> redirects: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'LAST!=2'>)}] redirects: [] do_fork: T ) ] spids: [1150 1166] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <set> more_env: [] words: [{<set>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [{<grep>} {<LAST>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } right: {<LAST> <Id.BoolBinary_GlobEqual '='> <02>} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(DQ <'LAST not correct in set list'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok:<set> more_env:[] words:[{<set>} {<-a>}] redirects:[] do_fork:T) (command.Simple blame_tok: <unset> more_env: [] words: [{<unset>} {<foo>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'foo='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'foo='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'foo='> name:foo) op: assign_op.Equal rhs: {<bar>} ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <export> more_env: [] words: [{<export>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [{<grep>} {<Id.Lit_Other '^'> <Id.Lit_VarLike 'foo='>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } right: {(SQ <'foo=bar'>)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'all export not working'>)}] redirects: [] do_fork: T ) ] spids: [1215 1238] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <unset> more_env: [] words: [{<unset>} {<foo>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <read> more_env: [] words: [{<read>} {<foo>}] redirects: [ (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<Id.KW_Bang '!'>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [<'bar\n'>] ) ) ] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobNEqual left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <export> more_env: [] words: [{<export>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [{<grep>} {<Id.Lit_Other '^'> <Id.Lit_VarLike 'foo='>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } right: {(SQ <'foo=bar'>)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'all export not working with read'>)}] redirects: [] do_fork: T ) ] spids: [1262 1285] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [{<grep>} {<PS2>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } right: {<PS2>} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'typeset without arguments outputs names without attributes'>)}] redirects: [] do_fork: T ) ] spids: [1295 1315] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <unset> more_env: [] words: [{<unset>} {<a>} {<z>} {<q>} {<x>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'w1='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'w1='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'w1='> name:w1) op: assign_op.Equal rhs: {<hello>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'w2='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'w2='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'w2='> name:w2) op: assign_op.Equal rhs: {<world>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 't1='> pairs: [ (AssignPair left: <Id.Lit_VarLike 't1='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 't1='> name:t1) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName w1) <' '> ($ Id.VSub_DollarName w2))} ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.DParen left: <Id.Op_DLeftParen _> child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {(SQ <a>)} right: {<Id.Lit_Digits 97>} ) right: <Id.Op_DRightParen _> redirects: [] ) ] ) then_kw: <Id.KW_Then then> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'b1='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'b1='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'b1='> name:b1) op: assign_op.Equal rhs: {<Id.Lit_VarLike 'aGVsbG8gd29ybGQ='>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'b2='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'b2='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'b2='> name:b2) op: assign_op.Equal rhs: {<Id.Lit_VarLike 'aGVsbG8gd29ybGRoZWxsbyB3b3JsZA='> <Id.Lit_Equals '='>} ) ] redirects: [] ) ] spids: [1348 1363] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.ShAssignment left: <Id.Lit_VarLike 'b1='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'b1='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'b1='> name:b1) op: assign_op.Equal rhs: {<Id.Lit_VarLike 'iIWTk5ZAppaZk4Q='>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'b2='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'b2='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'b2='> name:b2) op: assign_op.Equal rhs: {<Id.Lit_VarLike 'iIWTk5ZAppaZk4SIhZOTlkCmlpmThA='> <Id.Lit_Equals '='>} ) ] redirects: [] ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'z='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'z='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'z='> name:z) op: assign_op.Equal rhs: {($ Id.VSub_DollarName b1)} ) ] redirects: [] ) (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-b>} {<Id.Lit_VarLike 'x='> ($ Id.VSub_DollarName b1)}] redirects: [] do_fork: T ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName x)} right: {(DQ ($ Id.VSub_DollarName z))} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <print> more_env: [] words: [{<print>} {<-u2>} {(SQ <'binary variable not expanding correctly'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <printf> more_env: [] words: [{<printf>} {(DQ <'%B'>)} {<x>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } right: {($ Id.VSub_DollarName t1)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'typeset -b not working'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-b>} {<-Z5>} {<Id.Lit_VarLike 'a='> ($ Id.VSub_DollarName b1)}] redirects: [] do_fork: T ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <printf> more_env: [] words: [{<printf>} {(DQ <'%B'>)} {<a>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } right: {($ Id.VSub_DollarName w1)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'typeset -b -Z5 not working'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok: <typeset> more_env: [] words: [ {<typeset>} {<-b>} {<Id.Lit_VarLike 'q='> ($ Id.VSub_DollarName x) ($ Id.VSub_DollarName x)} ] redirects: [] do_fork: T ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName q)} right: {($ Id.VSub_DollarName b2)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'typeset -b not working with concatination'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <printf> more_env: [] words: [{<printf>} {(DQ <'%B'>)} {<q>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } right: {($ Id.VSub_DollarName t1) ($ Id.VSub_DollarName t1)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'typeset -b concatination not working'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.ShAssignment left: <Id.Lit_VarLike 'x+='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'x+='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x+='> name:x) op: assign_op.PlusEqual rhs: {($ Id.VSub_DollarName b1)} ) ] redirects: [] ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName x)} right: {($ Id.VSub_DollarName b2)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'typeset -b not working with append'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <printf> more_env: [] words: [{<printf>} {(DQ <'%B'>)} {<x>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } right: {($ Id.VSub_DollarName t1) ($ Id.VSub_DollarName t1)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'typeset -b append not working'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-b>} {<-Z20>} {<Id.Lit_VarLike 'z='> ($ Id.VSub_DollarName b1)}] redirects: [] do_fork: T ) (command.AndOr children: [ (command.DParen left: <Id.Op_DLeftParen _> child: (arith_expr.Binary op_id: Id.Arith_DEqual left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <printf> more_env: [] words: [{<printf>} {(DQ <'%B'>)} {<z>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <wc> more_env: [] words: [{<wc>} {<-c>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } right: {<Id.Lit_Digits 20>} ) right: <Id.Op_DRightParen _> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'typeset -b -Z20 not storing 20 bytes'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-b>} {<v1>} {<v2>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <read> more_env: [] words: [{<read>} {<-N11>} {<v1>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <read> more_env: [] words: [{<read>} {<-N22>} {<v2>}] redirects: [] do_fork: T ) ] redirects: [ (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<Id.KW_Bang '!'>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [<'hello worldhello worldhello world\n'>] ) ) ] right: <Id.Lit_RBrace '}'> ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName v1)} right: {(DQ ($ Id.VSub_DollarName b1))} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [ {<err_exit>} {(DQ <'v1='> ($ Id.VSub_DollarName v1) <' should be '> ($ Id.VSub_DollarName b1))} ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName v2)} right: {(DQ ($ Id.VSub_DollarName x))} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [ {<err_exit>} {(DQ <'v1='> ($ Id.VSub_DollarName v2) <' should be '> ($ Id.VSub_DollarName x))} ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <env> more_env: [] words: [{<env>} {(SQ <'!=1'>)}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (Redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <env> more_env: [] words: [ {<env>} {(SQ <'!=1'>)} {($ Id.VSub_DollarName SHELL)} {<-c>} {(SQ <'echo ok'>)} ] redirects: [ (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) right: <Id.Eof_RParen _> ) } right: {<ok>} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'malformed environment terminates shell'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) ] spids: [1701 1715] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <unset> more_env: [] words: [{<unset>} {<Id.KW_Var var>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-b>} {<Id.KW_Var var>}] redirects: [] do_fork: T ) (command.Pipeline children: [ (command.Simple blame_tok: <printf> more_env: [] words: [{<printf>} {(SQ <'12%Z34'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <read> more_env: [] words: [{<read>} {<-r>} {<-N>} {<5>} {<Id.KW_Var var>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName var)} right: {<MTIAMzQ> <Id.BoolBinary_GlobEqual '='>} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'binary files with zeros not working'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok: <unset> more_env: [] words: [{<unset>} {<Id.KW_Var var>}] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <command> more_env: [] words: [{<command>} {<typeset>} {<-usi>} {<Id.Lit_VarLike 'var='> <0xfffff>}] redirects: [ (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.AndOr children: [ (command.DParen left: <Id.Op_DLeftParen _> child: (arith_expr.Binary op_id: Id.Arith_DEqual left: {($ Id.VSub_DollarName var)} right: {<Id.Lit_Digits 0> <Id.Lit_ArithVarLike xffff>} ) right: <Id.Op_DRightParen _> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'unsigned short integers not working'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) ] spids: [1805 1820] ) ] else_kw: <Id.KW_Else else> else_action: [ (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'typeset -usi cannot be used for unsigned short'>)}] redirects: [] do_fork: T ) ] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <Id.VSub_DollarName '$SHELL'> more_env: [] words: [ {($ Id.VSub_DollarName SHELL)} {<-c>} {(SQ <'unset foo;typeset -Z2 foo; print ${foo:-3}'>)} ] redirects: [ (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) right: <Id.Eof_RParen _> ) } right: {<3>} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'${foo:-3} not 3 when typeset -Z2 field undefined'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <Id.VSub_DollarName '$SHELL'> more_env: [] words: [ {($ Id.VSub_DollarName SHELL)} {<-c>} {(SQ <'unset foo;typeset -Z2 foo; print ${foo:=3}'>)} ] redirects: [ (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) right: <Id.Eof_RParen _> ) } right: {<03>} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'${foo:=-3} not 3 when typeset -Z2 foo undefined'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok: <unset> more_env: [] words: [{<unset>} {<foo>} {<bar>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <unset> more_env: [] words: [{<unset>} {<-f>} {<fun>}] redirects: [] do_fork: T ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <fun> name: fun body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <export> more_env: [] words: [{<export>} {<Id.Lit_VarLike 'foo='> <hello>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-x>} {<Id.Lit_VarLike 'bar='> <world>}] redirects: [] do_fork: T ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName foo)} right: {<hello>} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'export scoping problem in function'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.Simple blame_tok:<fun> more_env:[] words:[{<fun>}] redirects:[] do_fork:T) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <export> more_env: [] words: [{<export>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [{<grep>} {<foo>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } right: {(SQ <'foo=hello'>)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'export not working in functions'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.WordTest w: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Simple blame_tok: <export> more_env: [] words: [{<export>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [{<grep>} {<bar>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'typeset -x not local'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <Id.VSub_DollarName '$SHELL'> more_env: [] words: [ {($ Id.VSub_DollarName SHELL)} {<-c>} {(SQ <'typeset -r IFS=;print -r $(pwd)'>)} ] redirects: [ (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) right: <Id.Eof_RParen _> ) } right: { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <pwd> more_env: [] words: [{<pwd>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'readonly IFS causes command substitution to fail'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.ShAssignment left: <Id.Lit_ArrayLhsOpen 'fred['> pairs: [ (AssignPair left: <Id.Lit_ArrayLhsOpen 'fred['> lhs: (sh_lhs_expr.IndexedName left: <Id.Lit_ArrayLhsOpen 'fred['> name: fred index: {<Id.Lit_Digits 66>} ) op: assign_op.Equal rhs: {<88>} ) ] redirects: [] ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-pa>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } right: {<Id.Lit_Other '*'> <fred> <Id.Lit_Other '*'>} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'typeset -pa not working'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok: <unset> more_env: [] words: [{<unset>} {<x>} {<y>} {<z>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-LZ3>} {<Id.Lit_VarLike 'x='> <abcd>} {<y>} {<Id.Lit_VarLike 'z='> <00abcd>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'y='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'y='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'y='> name:y) op: assign_op.Equal rhs: {<03>} ) ] redirects: [] ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName y)} right: {(DQ <'3 '>)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'-LZ3 not working for value 03'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName x)} right: {(DQ <abc>)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'-LZ3 not working for value abcd'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName x)} right: {(DQ <abc>)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'-LZ3 not working for value 00abcd'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok: <unset> more_env: [] words: [{<unset>} {<x>} {<z>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <set> more_env: [] words: [{<set>} {<Id.Lit_Other '+'> <a>}] redirects: [] do_fork: T ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.WordTest w: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-p>} {<z>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(DQ <'typeset -p for z undefined failed'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok:<unset> more_env:[] words:[{<unset>} {<z>}] redirects:[] do_fork:T) (command.ShAssignment left: <Id.Lit_VarLike 'x='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'x='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x) op: assign_op.Equal rhs: {(SQ <'typeset -i z=45'>)} ) ] redirects: [] ) (command.Simple blame_tok: <eval> more_env: [] words: [{<eval>} {(DQ ($ Id.VSub_DollarName x))}] redirects: [] do_fork: T ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-p>} {<z>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } right: {(DQ ($ Id.VSub_DollarName x))} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(DQ <'typeset -p for \''> ($ Id.VSub_DollarName x) <'\' failed'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<Id.Lit_Other '+'> <p>} {<z>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } right: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name x> var_name: x suffix_op: (suffix_op.Unary op: <Id.VOp1_Percent '%'> arg_word: {<'='> <Id.Lit_Other '*'>} ) right: <Id.Right_DollarBrace '}'> ) ) } ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(DQ <'typeset +p for \''> ($ Id.VSub_DollarName x) <'\' failed'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok:<unset> more_env:[] words:[{<unset>} {<z>}] redirects:[] do_fork:T) (command.ShAssignment left: <Id.Lit_VarLike 'x='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'x='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x) op: assign_op.Equal rhs: {(SQ <'typeset -a z=(a b c)'>)} ) ] redirects: [] ) (command.Simple blame_tok: <eval> more_env: [] words: [{<eval>} {(DQ ($ Id.VSub_DollarName x))}] redirects: [] do_fork: T ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-p>} {<z>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } right: {(DQ ($ Id.VSub_DollarName x))} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(DQ <'typeset -p for \''> ($ Id.VSub_DollarName x) <'\' failed'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<Id.Lit_Other '+'> <p>} {<z>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } right: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name x> var_name: x suffix_op: (suffix_op.Unary op: <Id.VOp1_Percent '%'> arg_word: {<'='> <Id.Lit_Other '*'>} ) right: <Id.Right_DollarBrace '}'> ) ) } ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(DQ <'typeset +p for \''> ($ Id.VSub_DollarName x) <'\' failed'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok:<unset> more_env:[] words:[{<unset>} {<z>}] redirects:[] do_fork:T) (command.ShAssignment left: <Id.Lit_VarLike 'x='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'x='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x) op: assign_op.Equal rhs: {(SQ <'typeset -C z=(\n'> <'\tfoo=bar\n'> <'\txxx=bam\n'> <')'>)} ) ] redirects: [] ) (command.Simple blame_tok: <eval> more_env: [] words: [{<eval>} {(DQ ($ Id.VSub_DollarName x))}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'x='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'x='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name x> var_name: x suffix_op: (suffix_op.PatSub pat: { (SingleQuoted left: <Id.Left_DollarSingleQuote '$\''> tokens: [<Id.Char_OneChar '\\t'>] right: <Id.Right_SingleQuote '\''> ) } replace: (rhs_word__Empty) replace_mode: Id.Lit_Slash slash_tok: <Id.VOp2_Slash _> ) right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'x='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'x='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name x> var_name: x suffix_op: (suffix_op.PatSub pat: { (SingleQuoted left: <Id.Left_DollarSingleQuote '$\''> tokens: [<Id.Char_Literals '('> <Id.Char_OneChar '\\n'>] right: <Id.Right_SingleQuote '\''> ) } replace: {(SQ <'('>)} replace_mode: Id.Lit_Slash slash_tok: <Id.VOp2_Slash _> ) right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'x='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'x='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name x> var_name: x suffix_op: (suffix_op.PatSub pat: { (SingleQuoted left: <Id.Left_DollarSingleQuote '$\''> tokens: [<Id.Char_OneChar '\\n'>] right: <Id.Right_SingleQuote '\''> ) } replace: {(SQ <';'>)} replace_mode: Id.Lit_Slash slash_tok: <Id.VOp2_Slash _> ) right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'x='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'x='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name x> var_name: x suffix_op: (suffix_op.Unary op:<Id.VOp1_Percent '%'> arg_word:{(SQ <';)'>)}) right: <Id.Right_DollarBrace '}'> ) (SQ <')'>) } ) ] redirects: [] ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-p>} {<z>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } right: {(DQ ($ Id.VSub_DollarName x))} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(DQ <'typeset -p for \''> ($ Id.VSub_DollarName x) <'\' failed'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<Id.Lit_Other '+'> <p>} {<z>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } right: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name x> var_name: x suffix_op: (suffix_op.Unary op: <Id.VOp1_DPercent '%%'> arg_word: {<'='> <Id.Lit_Other '*'>} ) right: <Id.Right_DollarBrace '}'> ) ) } ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(DQ <'typeset +p for \''> ($ Id.VSub_DollarName x) <'\' failed'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok:<unset> more_env:[] words:[{<unset>} {<z>}] redirects:[] do_fork:T) (command.ShAssignment left: <Id.Lit_VarLike 'x='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'x='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x) op: assign_op.Equal rhs: {(SQ <'typeset -A z=([bar]=bam [xyz]=bar)'>)} ) ] redirects: [] ) (command.Simple blame_tok: <eval> more_env: [] words: [{<eval>} {(DQ ($ Id.VSub_DollarName x))}] redirects: [] do_fork: T ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-p>} {<z>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } right: {(DQ ($ Id.VSub_DollarName x))} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(DQ <'typeset -p for \''> ($ Id.VSub_DollarName x) <'\' failed'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<Id.Lit_Other '+'> <p>} {<z>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } right: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name x> var_name: x suffix_op: (suffix_op.Unary op: <Id.VOp1_DPercent '%%'> arg_word: {<'='> <Id.Lit_Other '*'>} ) right: <Id.Right_DollarBrace '}'> ) ) } ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(DQ <'typeset +p for \''> ($ Id.VSub_DollarName x) <'\' failed'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok:<unset> more_env:[] words:[{<unset>} {<z>}] redirects:[] do_fork:T) (command.ShAssignment left: <Id.Lit_VarLike 'foo='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'foo='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'foo='> name:foo) op: assign_op.Equal rhs: {<abc>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'x='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'x='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x) op: assign_op.Equal rhs: {(SQ <'typeset -n z=foo'>)} ) ] redirects: [] ) (command.Simple blame_tok: <eval> more_env: [] words: [{<eval>} {(DQ ($ Id.VSub_DollarName x))}] redirects: [] do_fork: T ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-p>} {<z>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } right: {(DQ ($ Id.VSub_DollarName x))} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(DQ <'typeset -p for \''> ($ Id.VSub_DollarName x) <'\' failed'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<Id.Lit_Other '+'> <p>} {<z>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } right: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name x> var_name: x suffix_op: (suffix_op.Unary op: <Id.VOp1_DPercent '%%'> arg_word: {<'='> <Id.Lit_Other '*'>} ) right: <Id.Right_DollarBrace '}'> ) ) } ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(DQ <'typeset +p for \''> ($ Id.VSub_DollarName x) <'\' failed'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<Id.Lit_Other '+'> <n>} {<z>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <unset> more_env: [] words: [{<unset>} {<foo>} {<z>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <typeset> more_env: [] words: [ {<typeset>} {<-T>} {<Id.Lit_VarLike 'Pt_t='> (ShArrayLiteral left: <Id.Op_LParen _> words: [{<float>} {<Id.Lit_VarLike 'x='> <1>} {<Id.Lit_VarLike 'y='> <2>}] right: <Id.Right_ShArrayLiteral _> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok:<Pt_t> more_env:[] words:[{<Pt_t>} {<z>}] redirects:[] do_fork:T) (command.ShAssignment left: <Id.Lit_VarLike 'x='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'x='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name z> var_name: z suffix_op: (suffix_op.PatSub pat: { (SingleQuoted left: <Id.Left_DollarSingleQuote '$\''> tokens: [<Id.Char_OneChar '\\t'>] right: <Id.Right_SingleQuote '\''> ) } replace: (rhs_word__Empty) replace_mode: Id.Lit_Slash slash_tok: <Id.VOp2_Slash _> ) right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'x='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'x='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name x> var_name: x suffix_op: (suffix_op.PatSub pat: { (SingleQuoted left: <Id.Left_DollarSingleQuote '$\''> tokens: [<Id.Char_Literals '('> <Id.Char_OneChar '\\n'>] right: <Id.Right_SingleQuote '\''> ) } replace: {(SQ <'('>)} replace_mode: Id.Lit_Slash slash_tok: <Id.VOp2_Slash _> ) right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'x='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'x='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name x> var_name: x suffix_op: (suffix_op.PatSub pat: { (SingleQuoted left: <Id.Left_DollarSingleQuote '$\''> tokens: [<Id.Char_OneChar '\\n'>] right: <Id.Right_SingleQuote '\''> ) } replace: {(SQ <';'>)} replace_mode: Id.Lit_Slash slash_tok: <Id.VOp2_Slash _> ) right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'x='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'x='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name x> var_name: x suffix_op: (suffix_op.Unary op:<Id.VOp1_Percent '%'> arg_word:{(SQ <';)'>)}) right: <Id.Right_DollarBrace '}'> ) (SQ <')'>) } ) ] redirects: [] ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-p>} {<z>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } right: {(DQ <'Pt_t z='> ($ Id.VSub_DollarName x))} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(DQ <'typeset -p for type failed'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<Id.Lit_Other '+'> <p>} {<z>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } right: {(DQ <'Pt_t z'>)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(DQ <'typeset +p for type failed'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok:<unset> more_env:[] words:[{<unset>} {<z>}] redirects:[] do_fork:T) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <foo> name: foo body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-p>} {<bar>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShAssignment left: <Id.Lit_VarLike 'bar='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'bar='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bar='> name:bar) op: assign_op.Equal rhs: {<xxx>} ) ] redirects: [] ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <foo> more_env: [] words: [{<foo>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } right: {<bar> <Id.BoolBinary_GlobEqual '='> <xxx>} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'typeset -p not working inside a function'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok: <unset> more_env: [] words: [{<unset>} {<foo>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-L5>} {<foo>}] redirects: [] do_fork: T ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-p>} {<foo>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } right: {(SQ <'typeset -L 5 foo'>)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [ {<err_exit>} {(SQ <'typeset -p not working for variables with attributes but without a value'>)} ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.AndOr children: [ (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$SHELL'> more_env: [] words: [{($ Id.VSub_DollarName SHELL)}] redirects: [ (Redir op: <Id.Redir_DLessDash '<<-'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'typeset -L3 foo=aaa\n'> <'typeset -L6 foo=bbbbbb\n'> <'[[ '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'foo == bbbbbb ]]\n'> ] ) ) ] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'typeset -L should not preserve old attributes'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.AndOr children: [ (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$SHELL'> more_env: [] words: [{($ Id.VSub_DollarName SHELL)}] redirects: [ (Redir op: <Id.Redir_DLessDash '<<-'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'typeset -R3 foo=aaa\n'> <'typeset -R6 foo=bbbbbb\n'> <'[[ '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\$'> ch: '$' ) <'foo == bbbbbb ]]\n'> ] ) ) ] do_fork: T ) ] redirects: [(Redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})] right: <Id.Lit_RBrace '}'> ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'typeset -R should not preserve old attributes'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.ShAssignment left: <Id.Lit_VarLike 'expected='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'expected='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'expected='> name:expected) op: assign_op.Equal rhs: {(SQ <'YWJjZGVmZ2hpag=='>)} ) ] redirects: [] ) (command.Simple blame_tok: <unset> more_env: [] words: [{<unset>} {<foo>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-b>} {<-Z10>} {<foo>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <read> more_env: [] words: [{<read>} {<foo>}] redirects: [ (Redir op:<Id.Redir_TLess '<<<'> loc:(redir_loc.Fd fd:0) arg:{(SQ <abcdefghijklmnop>)}) ] do_fork: T ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName foo)} right: {(DQ ($ Id.VSub_DollarName expected))} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'read foo, where foo is "typeset -b -Z10" not working'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok: <unset> more_env: [] words: [{<unset>} {<foo>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-b>} {<-Z10>} {<foo>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <read> more_env: [] words: [{<read>} {<-N10>} {<foo>}] redirects: [ (Redir op:<Id.Redir_TLess '<<<'> loc:(redir_loc.Fd fd:0) arg:{(SQ <abcdefghijklmnop>)}) ] do_fork: T ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName foo)} right: {(DQ ($ Id.VSub_DollarName expected))} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'read -N10 foo, where foo is "typeset -b -Z10" not working'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok: <unset> more_env: [] words: [{<unset>} {<foo>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-b>} {<-A>} {<foo>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <read> more_env: [] words: [{<read>} {<-N10>} {<Id.Lit_ArrayLhsOpen 'foo['> <4> <Id.Lit_RBracket ']'>}] redirects: [ (Redir op:<Id.Redir_TLess '<<<'> loc:(redir_loc.Fd fd:0) arg:{(SQ <abcdefghijklmnop>)}) ] do_fork: T ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name foo> var_name: foo bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 4>}) right: <Id.Right_DollarBrace '}'> ) } right: {(DQ ($ Id.VSub_DollarName expected))} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'read -N10 foo, where foo is "typeset -b -A" foo not working'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok: <unset> more_env: [] words: [{<unset>} {<foo>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-b>} {<-a>} {<foo>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <read> more_env: [] words: [{<read>} {<-N10>} {<Id.Lit_ArrayLhsOpen 'foo['> <4> <Id.Lit_RBracket ']'>}] redirects: [ (Redir op:<Id.Redir_TLess '<<<'> loc:(redir_loc.Fd fd:0) arg:{(SQ <abcdefghijklmnop>)}) ] do_fork: T ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name foo> var_name: foo bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 4>}) right: <Id.Right_DollarBrace '}'> ) } right: {(DQ ($ Id.VSub_DollarName expected))} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'read -N10 foo, where foo is "typeset -b -a" foo not working'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <printf> more_env: [] words: [ {<printf>} {<Id.Lit_Other '%'> <B>} {<Id.Lit_ArrayLhsOpen 'foo['> <4> <Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } right: {<abcdefghij>} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'printf %B for binary associative array element not working'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <printf> more_env: [] words: [ {<printf>} {<Id.Lit_Other '%'> <B>} {<Id.Lit_ArrayLhsOpen 'foo['> <4> <Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } right: {<abcdefghij>} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'printf %B for binary indexed array element not working'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok: <unset> more_env: [] words: [{<unset>} {<foo>}] redirects: [] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$SHELL'> more_env: [] words: [{($ Id.VSub_DollarName SHELL)} {<-c>} {(SQ <'export foo=(bar=3)'>)}] redirects: [(Redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})] do_fork: T ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'compound variables cannot be exported'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$SHELL'> more_env: [] words: [{($ Id.VSub_DollarName SHELL)} {<-c>} {(SQ <'builtin date'>)}] redirects: [ (Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>}) (Redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>}) ] do_fork: T ) (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'SEC='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'SEC='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SEC='> name:SEC) op: assign_op.Equal rhs: {<1234252800>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'ETZ='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'ETZ='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ETZ='> name:ETZ) op: assign_op.Equal rhs: {<EST5EDT>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'EDT='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'EDT='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'EDT='> name:EDT) op: assign_op.Equal rhs: {<03>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'PTZ='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'PTZ='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PTZ='> name:PTZ) op: assign_op.Equal rhs: {<PST8PDT>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'PDT='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'PDT='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PDT='> name:PDT) op: assign_op.Equal rhs: {<00>} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'CMD='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'CMD='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'CMD='> name:CMD) op: assign_op.Equal rhs: { (DQ <'date -f%H '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\\\'> ch: '\\' ) <'#'> ($ Id.VSub_DollarName SEC) ) } ) ] redirects: [] ) (command.Simple blame_tok: <export> more_env: [] words: [{<export>} {<Id.Lit_VarLike 'TZ='> ($ Id.VSub_DollarName ETZ)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <set> more_env: [] words: [ {<set>} {<-->} { (DQ ($ Id.VSub_DollarName EDT) <' '> ($ Id.VSub_DollarName PDT) <' '> ($ Id.VSub_DollarName EDT) ) } {(DQ )} {(DQ <'TZ='> ($ Id.VSub_DollarName PTZ))} {(DQ )} { (DQ ($ Id.VSub_DollarName EDT) <' '> ($ Id.VSub_DollarName PDT) <' '> ($ Id.VSub_DollarName EDT) ) } {(DQ )} {(DQ <'TZ='> ($ Id.VSub_DollarName PTZ))} {(DQ <'TZ='> ($ Id.VSub_DollarName ETZ))} { (DQ ($ Id.VSub_DollarName EDT) <' '> ($ Id.VSub_DollarName PDT) <' '> ($ Id.VSub_DollarName EDT) ) } {(DQ <'TZ='> ($ Id.VSub_DollarName ETZ))} {(DQ <'TZ='> ($ Id.VSub_DollarName PTZ))} {(DQ <'TZ='> ($ Id.VSub_DollarName ETZ))} { (DQ ($ Id.VSub_DollarName PDT) <' '> ($ Id.VSub_DollarName EDT) <' '> ($ Id.VSub_DollarName PDT) ) } {(DQ <'TZ='> ($ Id.VSub_DollarName PTZ))} {(DQ )} {(DQ <'TZ='> ($ Id.VSub_DollarName PTZ))} { (DQ ($ Id.VSub_DollarName PDT) <' '> ($ Id.VSub_DollarName EDT) <' '> ($ Id.VSub_DollarName PDT) ) } {(DQ <'TZ='> ($ Id.VSub_DollarName PTZ))} {(DQ <'TZ='> ($ Id.VSub_DollarName ETZ))} {(DQ <'TZ='> ($ Id.VSub_DollarName PTZ))} { (DQ ($ Id.VSub_DollarName EDT) <' '> ($ Id.VSub_DollarName PDT) <' '> ($ Id.VSub_DollarName EDT) ) } {(DQ <'foo=bar'>)} {(DQ <'TZ='> ($ Id.VSub_DollarName PTZ))} {(DQ <'TZ='> ($ Id.VSub_DollarName ETZ))} ] redirects: [] do_fork: T ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.DParen left: <Id.Op_DLeftParen _> child: (arith_expr.Binary op_id: Id.Arith_GreatEqual left: {($ Id.VSub_Pound '#')} right: {<Id.Lit_Digits 4>} ) right: <Id.Op_DRightParen _> redirects: [] ) ] ) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'exp='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'exp='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'exp='> name:exp) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'got='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'got='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'got='> name:got) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <print> more_env: [] words: [ {<print>} { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <Id.VSub_DollarName '$SHELL'> more_env: [] words: [ {($ Id.VSub_DollarName SHELL)} {<-c>} { (DQ <'builtin date; '> ($ Id.VSub_Number 2) <' '> ($ Id.VSub_DollarName CMD) <'; '> ($ Id.VSub_Number 3) <' '> ($ Id.VSub_DollarName CMD) <'; '> ($ Id.VSub_Number 4) <' '> ($ Id.VSub_DollarName CMD) ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName got)} right: {($ Id.VSub_DollarName exp)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [ {<err_exit>} { (DQ <'[ \''> ($ Id.VSub_Number 2) <'\' \''> ($ Id.VSub_Number 3) <'\' \''> ($ Id.VSub_Number 4) <'\' ] env sequence failed -- expected \''> ($ Id.VSub_DollarName exp) <'\', got \''> ($ Id.VSub_DollarName got) <'\''> ) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok: <shift> more_env: [] words: [{<shift>} {<4>}] redirects: [] do_fork: T ) ] right: <Id.KW_Done done> ) redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok:<unset> more_env:[] words:[{<unset>} {<v>}] redirects:[] do_fork:T) (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-H>} {<Id.Lit_VarLike 'v='> <'/dev/null'>}] redirects: [] do_fork: T ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName v)} right: {<Id.Lit_Other '*'> <nul> <Id.Lit_Other '*'>} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'typeset -H for /dev/null not working'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok:<unset> more_env:[] words:[{<unset>} {<x>}] redirects:[] do_fork:T) (command.AndOr children: [ (command.Subshell left: <Id.Op_LParen _> child: (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<Id.Lit_Other '+'> <C>} {<x>}] redirects: [] do_fork: T ) right: <Id.Right_Subshell _> redirects: [(Redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'typeset +C should be an error'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.AndOr children: [ (command.Subshell left: <Id.Op_LParen _> child: (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<Id.Lit_Other '+'> <A>} {<x>}] redirects: [] do_fork: T ) right: <Id.Right_Subshell _> redirects: [(Redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'typeset +A should be an error'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.AndOr children: [ (command.Subshell left: <Id.Op_LParen _> child: (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<Id.Lit_Other '+'> <a>} {<x>}] redirects: [] do_fork: T ) right: <Id.Right_Subshell _> redirects: [(Redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'typeset +a should be an error'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok:<unset> more_env:[] words:[{<unset>} {<x>}] redirects:[] do_fork:T) (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'x='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'x='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x='> name:x) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <Id.VSub_DollarName '$SHELL'> more_env: [] words: [ {($ Id.VSub_DollarName SHELL)} {<-c>} {(SQ <'integer -s x=5;print -r -- $x'>)} ] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) ] redirects: [] ) ] redirects: [(Redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})] right: <Id.Lit_RBrace '}'> ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName x)} right: {<5>} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'integer -s not working'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-l>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } right: {<Id.Lit_Other '*'> <namespace> <Id.Lit_Other '*'> <.sh> <Id.Lit_Other '*'>} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'typeset -l should not contain namespace .sh'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok: <unset> more_env: [] words: [{<unset>} {<got>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-u>} {<got>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'exp='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'exp='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'exp='> name:exp) op: assign_op.Equal rhs: {<100>} ) ] redirects: [] ) (command.DParen left: <Id.Op_DLeftParen _> child: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: ($ Id.Lit_ArithVarLike got) right: {($ Id.VSub_DollarName exp)} ) right: <Id.Op_DRightParen _> redirects: [] ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName got)} right: {($ Id.VSub_DollarName exp)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [ {<err_exit>} { (DQ <'typeset -l fails on numeric value -- expected \''> ($ Id.VSub_DollarName exp) <'\', got \''> ($ Id.VSub_DollarName got) <'\''> ) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok:<unset> more_env:[] words:[{<unset>} {<s>}] redirects:[] do_fork:T) (command.Simple blame_tok: <typeset> more_env: [] words: [ {<typeset>} {<-a>} {<-u>} {<Id.Lit_VarLike 's='> (ShArrayLiteral left: <Id.Op_LParen _> words: [{<hello>} {<world>} {<chicken>}] right: <Id.Right_ShArrayLiteral _> ) } ] redirects: [] do_fork: T ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name s> var_name: s bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 2>}) right: <Id.Right_DollarBrace '}'> ) } right: {<CHICKEN>} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'typeset -u not working with indexed arrays'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok:<unset> more_env:[] words:[{<unset>} {<s>}] redirects:[] do_fork:T) (command.Simple blame_tok: <typeset> more_env: [] words: [ {<typeset>} {<-A>} {<-u>} {<Id.Lit_VarLike 's='> (word_part.BashAssocLiteral left: <Id.Op_LParen _> pairs: [ (AssocPair key:{<1>} value:{<hello>}) (AssocPair key:{<0>} value:{<world>}) (AssocPair key:{<2>} value:{<chicken>}) ] right: <Id.Right_ShArrayLiteral _> ) } ] redirects: [] do_fork: T ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name s> var_name: s bracket_op: (bracket_op.ArrayIndex expr:{<Id.Lit_Digits 2>}) right: <Id.Right_DollarBrace '}'> ) } right: {<CHICKEN>} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'typeset -u not working with associative arrays'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.ShAssignment left: <Id.Lit_VarLike 'expected='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'expected='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'expected='> name:expected) op: assign_op.Equal rhs: { (SingleQuoted left: <Id.Left_DollarSingleQuote '$\''> tokens: [ <Id.Char_Literals '('> <Id.Char_OneChar '\\n'> <Id.Char_OneChar '\\t'> <Id.Char_Literals '[0]=WORLD'> <Id.Char_OneChar '\\n'> <Id.Char_OneChar '\\t'> <Id.Char_Literals '[1]=HELLO'> <Id.Char_OneChar '\\n'> <Id.Char_OneChar '\\t'> <Id.Char_Literals '[2]=CHICKEN'> <Id.Char_OneChar '\\n'> <Id.Char_Literals ')'> ] right: <Id.Right_SingleQuote '\''> ) } ) ] redirects: [] ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <print> more_env: [] words: [{<print>} {<-v>} {<s>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } right: {(DQ ($ Id.VSub_DollarName expected))} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'typeset -u for associative array does not display correctly'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok:<unset> more_env:[] words:[{<unset>} {<s>}] redirects:[] do_fork:T) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Simple blame_tok: <command> more_env: [] words: [{<command>} {<typeset>} {<-M>} {<totitle>} {<s>}] redirects: [ (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) ] ) then_kw: <Id.KW_Then then> action: [ (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<Id.Lit_Other '+'> <p>} {<s>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } right: {(SQ <'typeset -M totitle s'>)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [ {<err_exit>} {(SQ <'typeset -M totitle does not display correctly with typeset -p'>)} ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) ] spids: [3831 3847] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$SHELL'> more_env: [] words: [{($ Id.VSub_DollarName SHELL)}] redirects: [ (Redir op: <Id.Redir_DLessDash '<<-'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\E'> ch:E) <OF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ <'compound -a a1\n'> <'for ((i=1 ; i < 100 ; i++ ))\n'> <' do\t[[ "$( typeset + a1[$i] )" == \'\' ]] && a1[$i].text=\'hello\'\n'> <'done\n'> <'[[ ${a1[70].text} == hello ]]\n'> ] ) ) ] do_fork: T ) ] redirects: [(Redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})] right: <Id.Lit_RBrace '}'> ) (command.AndOr children: [ (command.DParen left: <Id.Op_DLeftParen _> child: {($ Id.VSub_QMark '?')} right: <Id.Op_DRightParen _> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'typeset + a[i] not working'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<Id.Lit_VarLike 'groupDB='> (DQ )} {<Id.Lit_VarLike 'userDB='> (DQ )}] redirects: [] do_fork: T ) (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-l>} {<-L1>} {<Id.Lit_VarLike 'DBPick='> (DQ )}] redirects: [] do_fork: T ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Unary op_id:Id.BoolUnary_n child:{(DQ ($ Id.VSub_DollarName groupDB))}) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'typeset -l -L1 causes unwanted side effect'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.ShAssignment left: <Id.Lit_VarLike 'HISTFILE='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'HISTFILE='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HISTFILE='> name:HISTFILE) op: assign_op.Equal rhs: {<foo>} ) ] redirects: [] ) (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-u>} {<Id.Lit_VarLike 'PS1='> (SQ <'hello --- '>)}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'HISTFILE='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'HISTFILE='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HISTFILE='> name:HISTFILE) op: assign_op.Equal rhs: {<foo>} ) ] redirects: [] ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName HISTFILE)} right: {<foo>} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'typeset -u PS1 affects HISTFILE'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok: <typeset> more_env: [] words: [ {<typeset>} {<-a>} {<Id.Lit_VarLike 'a='> (ShArrayLiteral left: <Id.Op_LParen _> words: [ {<Id.Lit_VarLike 'aA='>} {<Id.Lit_VarLike 'ZQ='>} {<Id.Lit_VarLike 'bA='>} {<Id.Lit_VarLike 'bA='>} {<Id.Lit_VarLike 'bw='>} {<Id.Lit_VarLike 'Cg='>} ] right: <Id.Right_ShArrayLiteral _> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-b>} {<x>}] redirects: [] do_fork: T ) (command.ForExpr keyword: <Id.KW_For for> init: (arith_expr.BinaryAssign op_id: Id.Arith_Equal left: ($ Id.Lit_ArithVarLike i) right: {<Id.Lit_Digits 0>} ) cond: (arith_expr.Binary op_id: Id.Arith_Less left: ($ Id.Lit_ArithVarLike i) right: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name a> var_name: a prefix_op: <Id.VSub_Pound '#'> bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) } ) update: (arith_expr.UnaryAssign op_id:Id.Node_PostDPlus child:($ Id.Lit_ArithVarLike i)) body: (command.DoGroup left: <Id.KW_Do do> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'x+='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'x+='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'x+='> name:x) op: assign_op.PlusEqual rhs: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name a> var_name: a bracket_op: (bracket_op.ArrayIndex expr:($ Id.Lit_ArithVarLike i)) right: <Id.Right_DollarBrace '}'> ) ) } ) ] redirects: [] ) ] right: <Id.KW_Done done> ) redirects: [] ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <printf> more_env: [] words: [{<printf>} {(DQ <'%B'>)} {<x>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } right: {<hello>} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [ {<err_exit>} { (DQ <'append for typeset -b not working: got \''> (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <printf> more_env: [] words: [{<printf>} {(DQ <'%B'>)} {<x>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <'\' should get hello'> ) } ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.AndOr children: [ (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <trap> more_env: [] words: [{<trap>} {(SQ <'exit $?'>)} {<EXIT>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <Id.VSub_DollarName '$SHELL'> more_env: [] words: [ {($ Id.VSub_DollarName SHELL)} {<-c>} {(SQ <'typeset v=foo; [[ $(typeset -p v[0]) == v=foo ]]'>)} ] redirects: [] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [(Redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'typeset -p v[0] not working for simple variable v'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok:<unset> more_env:[] words:[{<unset>} {<x>}] redirects:[] do_fork:T) (command.ShAssignment left: <Id.Lit_VarLike 'expected='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'expected='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'expected='> name:expected) op: assign_op.Equal rhs: {(SQ <'typeset -a x=(a\\=3 b\\=4)'>)} ) ] redirects: [] ) (command.Simple blame_tok: <typeset> more_env: [] words: [ {<typeset>} {<-a>} {<Id.Lit_VarLike 'x='> (ShArrayLiteral left: <Id.Op_LParen _> words: [{<Id.Lit_VarLike 'a='> <3>} {<Id.Lit_VarLike 'b='> <4>}] right: <Id.Right_ShArrayLiteral _> ) } ] redirects: [] do_fork: T ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-p>} {<x>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } right: {(DQ ($ Id.VSub_DollarName expected))} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'assignment elements in typeset -a assignment not working'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok:<unset> more_env:[] words:[{<unset>} {<z>}] redirects:[] do_fork:T) (command.ShAssignment left: <Id.Lit_VarLike 'z='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'z='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'z='> name:z) op: assign_op.Equal rhs: {(SQ <'typeset -a q=(a b c)'>)} ) ] redirects: [] ) (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$SHELL'> more_env: [] words: [ {($ Id.VSub_DollarName SHELL)} {<-c>} { (DQ ($ Id.VSub_DollarName z) <'; [[ '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'(typeset -pa) == \''> ($ Id.VSub_DollarName z) <'\' ]]'> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'typeset -pa does not list only index arrays'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.ShAssignment left: <Id.Lit_VarLike 'z='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'z='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'z='> name:z) op: assign_op.Equal rhs: {(SQ <'typeset -C z=(foo=bar)'>)} ) ] redirects: [] ) (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$SHELL'> more_env: [] words: [ {($ Id.VSub_DollarName SHELL)} {<-c>} { (DQ ($ Id.VSub_DollarName z) <'; [[ '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'(typeset -pC) == \''> ($ Id.VSub_DollarName z) <'\' ]]'> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'typeset -pC does not list only compound variables'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok:<unset> more_env:[] words:[{<unset>} {<y>}] redirects:[] do_fork:T) (command.ShAssignment left: <Id.Lit_VarLike 'z='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'z='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'z='> name:z) op: assign_op.Equal rhs: {(SQ <'typeset -A y=([a]=foo)'>)} ) ] redirects: [] ) (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$SHELL'> more_env: [] words: [ {($ Id.VSub_DollarName SHELL)} {<-c>} { (DQ ($ Id.VSub_DollarName z) <'; [[ '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'> ch:'$') <'(typeset -pA) == \''> ($ Id.VSub_DollarName z) <'\' ]]'> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'typeset -pA does not list only associative arrays'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.AndOr children: [ (command.Simple blame_tok: <Id.VSub_DollarName '$SHELL'> more_env: [] words: [{($ Id.VSub_DollarName SHELL)} {<-c>} {(SQ <'typeset -C arr=( aa bb cc dd )'>)}] redirects: [(Redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})] do_fork: T ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'invalid compound variable assignment not reported'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok:<unset> more_env:[] words:[{<unset>} {<x>}] redirects:[] do_fork:T) (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-l>} {<Id.Lit_VarLike 'x='>}] redirects: [] do_fork: T ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name x> var_name: x suffix_op: (suffix_op.Unary op:<Id.VTest_ColonEquals _> arg_word:{<foo>}) right: <Id.Right_DollarBrace '}'> ) } right: {<foo>} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'${x:=foo} with x unset, not foo when x is a lowercase variable'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok:<unset> more_env:[] words:[{<unset>} {<x>}] redirects:[] do_fork:T) (command.Simple blame_tok: <typeset> more_env: [] words: [ {<typeset>} {<-L4>} {<Id.Lit_VarLike 'x='> (SingleQuoted left: <Id.Left_DollarSingleQuote '$\''> tokens: [<Id.Char_Octal3 '\\001'> <Id.Char_Literals abcdef>] right: <Id.Right_SingleQuote '\''> ) } ] redirects: [] do_fork: T ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name x> var_name: x prefix_op: <Id.VSub_Pound '#'> right: <Id.Right_DollarBrace '}'> ) } right: {<5>} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [ {<err_exit>} {(DQ <'width of character \''> <Id.Lit_BadBackslash '\\'> <'01\' is not zero'>)} ] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok:<unset> more_env:[] words:[{<unset>} {<x>}] redirects:[] do_fork:T) (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-L>} {<Id.Lit_VarLike 'x='> <-1>}] redirects: [] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <command> more_env: [] words: [{<command>} {<typeset>} {<-F>} {<Id.Lit_VarLike 'x='> <0-1>}] redirects: [(Redir op:<Id.Redir_Great '2>'> loc:(redir_loc.Fd fd:2) arg:{<'/dev/null'>})] do_fork: T ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'typeset -F after typeset -L fails'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok: <unset> more_env: [] words: [{<unset>} {<val>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-i>} {<Id.Lit_VarLike 'val='> <10> <Id.Lit_Pound '#'> <0-3>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-Z>} {<Id.Lit_VarLike 'val='> <0-1>}] redirects: [] do_fork: T ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {($ Id.VSub_DollarName val)} right: {<0-1>} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'integer attribute not cleared for subsequent typeset'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok:<unset> more_env:[] words:[{<unset>} {<x>}] redirects:[] do_fork:T) (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-L>} {<-Z>} {<Id.Lit_VarLike 'x='> <foo>}] redirects: [] do_fork: T ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-p>} {<x>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } right: {(SQ <'typeset -Z 3 -L 3 x=foo'>)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'-LRZ without [n] not defaulting to width of variable'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok: <unset> more_env: [] words: [{<unset>} {<foo>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-Z2>} {<Id.Lit_VarLike 'foo='> <3>}] redirects: [] do_fork: T ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-p>} {<foo>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } right: {(SQ <'typeset -Z 2 -R 2 foo=03'>)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'-Z2 not working'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok: <export> more_env: [] words: [{<export>} {<foo>}] redirects: [] do_fork: T ) (command.AndOr children: [ (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <typeset> more_env: [] words: [{<typeset>} {<-p>} {<foo>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } right: {(SQ <'typeset -x -Z 2 -R 2 foo=03'>)} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) (command.Simple blame_tok: <err_exit> more_env: [] words: [{<err_exit>} {(SQ <'-Z2 not working after export'>)}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.ControlFlow keyword: <Id.ControlFlow_Exit exit> arg_word: { (word_part.ArithSub left: <Id.Left_DollarDParen '$(('> anode: (arith_expr.TernaryOp cond: (arith_expr.Binary op_id: Id.Arith_Less left: ($ Id.Lit_ArithVarLike Errors) right: {<Id.Lit_Digits 125>} ) true_expr: ($ Id.Lit_ArithVarLike Errors) false_expr: {<Id.Lit_Digits 125>} ) right: <Id.Right_DollarDParen _> ) } ) ] )