(command.CommandList children: [ (C {<echo>} {(SQ <'--- envini requires arguments'>)}) (command.CommandList children: [ (command.Sentence child:(C {<envini>} {<whatever>}) terminator:<Id.Op_Semi _>) (C {<echo>} {($ Id.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: <Id.Op_Semi _> ) (C {<echo>} {($ Id.VSub_QMark '?')}) ] ) (C {<rm>} {<envi>}) (C {<echo>} {(SQ <'--- envini adds variables'>)}) (command.Simple words: [{<cat>}] redirects: [ (redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<envi>}) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc 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'> ] ) ) ] more_env: [] do_fork: T ) (command.CommandList children: [ (command.Sentence child: (C {<envini>} {<envi>} {<sh>} {<-c>} {(SQ <'echo $Message; echo $sect_Message'>)}) terminator: <Id.Op_Semi _> ) (C {<echo>} {($ Id.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: <Id.Op_Semi _> ) (C {<echo>} {($ Id.VSub_QMark '?')}) ] ) ] )