(command.CommandList children: [ (command.CommandList children: [ (command.Sentence child: (C {(.)} { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:srcdir span_id:56) suffix_op: (suffix_op.Unary op_id:Id.VTest_Equals arg_word:{(.)}) ) (/init.sh) ) } ) terminator: (Token id:Id.Op_Semi val:';' span_id:62) ) (C {(path_prepend_)} {(.)}) ] ) (command.ShAssignment pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:fail) op:assign_op.Equal rhs:{(0)} spids:[68])] ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:78) fd: -1 arg_word: {(Id.KW_In in)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:82) fd: -1 here_begin: {(EOT)} here_end_span_id: 89 stdin_parts: [('foo*\n') ('bar\n') ('Baz\n')] ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:93) fd: -1 arg_word: {(expected)} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:97) fd: -1 here_begin: {(EOT)} here_end_span_id: 102 stdin_parts: [('foobar: 1\n')] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [{(test-exclude)} {(-wildcards)} {(Id.KW_In in)} {(--)} {(foobar)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:114) fd: -1 arg_word: {(out)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:120) arg_word: {($ Id.VSub_QMark '$?')} ) ] ) (command.Case to_match: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:133) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(r)}) (C {(tr)} {(-d)} {(SQ (Token id:Id.Lit_Chars val:'\\r' span_id:145))}) ] negated: F ) ] ) ) } arms: [ (case_arm pat_list: [{(SQ )}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cr) op: assign_op.Equal rhs: {(SQ (Token id:Id.Lit_Chars val:'\\015' span_id:157))} spids: [155] ) ] ) ] spids: [151 153 159 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cr) op: assign_op.Equal rhs: {(SQ (Token id:Id.Lit_Chars val:'\\r' span_id:166))} spids: [164] ) ] ) ] spids: [161 162 168 -1] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Simple words: [{(tr)} {(-d)} {(DQ ($ Id.VSub_DollarName '$cr'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Less val:'<' span_id:187) fd: -1 arg_word: {(out)} ) (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:191) fd: -1 arg_word: {(k)} ) ] more_env: [(env_pair name:LC_ALL val:{(C)} spids:[176])] ) (C {(mv)} {(k)} {(out)}) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(compare)} {(expected)} {(out)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fail) op: assign_op.Equal rhs: {(1)} spids: [212] ) ] ) ] ) (C {(Exit)} {($ Id.VSub_DollarName '$fail')}) ] )