(CommandList children: [ (C {(echo)} {(SQ <'--- envini requires arguments'>)}) (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)}) (Sentence child:(C {(envini)} {(envi)} {(echo)} {(yes)}) terminator:<Op_Semi ';'>) (C {(echo)} {($ VSub_QMark '$?')}) (C {(rm)} {(envi)}) (C {(echo)} {(SQ <'--- envini adds variables'>)}) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id:Redir_Great fd:16777215 arg_word:{(envi)} spids:[56]) (HereDoc op_id: Redir_DLess fd: 16777215 body: { (DQ ('; comment\n') ('broken\n') (' Message = This is a test.\n') ('[sect]\n') ('Message=This is only a test. \n') ) } do_expansion: True here_end: EOF was_filled: T spids: [60] ) ] ) (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'>)}) (Sentence child: (C {(envini)} {(-p)} {(prefix_)} {(envi)} {(sh)} {(-c)} {(SQ <'echo $Message; echo $prefix_Message'>)} ) terminator: <Op_Semi ';'> ) (C {(echo)} {($ VSub_QMark '$?')}) ] )