(command.CommandList children: [ (C {(echo)} {(SQ <'--- envini requires arguments'>)}) (command.CommandList children: [ (command.Sentence child:(C {(envini)} {(whatever)}) terminator:<Op_Semi ';'>) (C {(echo)} {($ VSub_QMark '$?')}) ] ) (C {(echo)} {(SQ <'--- envini complains if it cannot read file'>)}) (C {(ln)} {(-s)} {(envi)} {(envi)}) (command.CommandList children: [ (command.Sentence child: (C {(envini)} {(envi)} {(echo)} {(yes)}) terminator: <Op_Semi ';'> ) (C {(echo)} {($ VSub_QMark '$?')}) ] ) (C {(rm)} {(envi)}) (C {(echo)} {(SQ <'--- envini adds variables'>)}) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(envi)}) (redir.HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 70 stdin_parts: [ ('; comment\n') ('broken\n') (' Message = This is a test.\n') ('[sect]\n') ('Message=This is only a test. \n') ] ) ] ) (command.CommandList children: [ (command.Sentence child: (C {(envini)} {(envi)} {(sh)} {(-c)} {(SQ <'echo $Message; echo $sect_Message'>)}) terminator: <Op_Semi ';'> ) (C {(echo)} {($ VSub_QMark '$?')}) ] ) (C {(echo)} {(SQ <'--- envini adds prefix'>)}) (command.CommandList children: [ (command.Sentence child: (C {(envini)} {(-p)} {(prefix_)} {(envi)} {(sh)} {(-c)} {(SQ <'echo $Message; echo $prefix_Message'>)} ) terminator: <Op_Semi ';'> ) (C {(echo)} {($ VSub_QMark '$?')}) ] ) ] )