(command.CommandList children: [ (C {(echo)} {(SQ <'--- envdir requires arguments'>)}) (command.CommandList children: [ (command.Sentence child:(C {(envdir)} {(whatever)}) terminator:<Op_Semi ';'>) (C {(echo)} {($ VSub_QMark '$?')}) ] ) (C {(echo)} {(SQ <'--- envdir complains if it cannot read directory'>)}) (C {(ln)} {(-s)} {(env1)} {(env1)}) (command.CommandList children: [ (command.Sentence child: (C {(envdir)} {(env1)} {(echo)} {(yes)}) terminator: <Op_Semi ';'> ) (C {(echo)} {($ VSub_QMark '$?')}) ] ) (C {(echo)} {(SQ <'--- envdir complains if it cannot read file'>)}) (C {(rm)} {(env1)}) (C {(mkdir)} {(env1)}) (C {(ln)} {(-s)} {(Message)} {(env1/Message)}) (command.CommandList children: [ (command.Sentence child: (C {(envdir)} {(env1)} {(echo)} {(yes)}) terminator: <Op_Semi ';'> ) (C {(echo)} {($ VSub_QMark '$?')}) ] ) (C {(echo)} {(SQ <'--- envdir adds variables'>)}) (C {(rm)} {(env1/Message)}) (command.Simple words: [{(echo)} {(This)} {(is)} {(a)} {(test.)} {(This)} {(is)} {(only)} {(a)} {(test.)}] redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(env1/Message)})] ) (command.CommandList children: [ (command.Sentence child: (C {(envdir)} {(env1)} {(sh)} {(-c)} {(SQ <'echo $Message'>)}) terminator: <Op_Semi ';'> ) (C {(echo)} {($ VSub_QMark '$?')}) ] ) (C {(echo)} {(SQ <'--- envdir removes variables'>)}) (C {(mkdir)} {(env2)}) (C {(touch)} {(env2/Message)}) (command.CommandList children: [ (command.Sentence child: (C {(envdir)} {(env1)} {(envdir)} {(env2)} {(sh)} {(-c)} {(SQ <'echo $Message'>)}) terminator: <Op_Semi ';'> ) (C {(echo)} {($ VSub_QMark '$?')}) ] ) (C {(echo)} {(SQ <'--- envdir adds prefix'>)}) (command.CommandList children: [ (command.Sentence child: (C {(envdir)} {(-p)} {(prefix_)} {(env1)} {(sh)} {(-c)} {(SQ <'echo $Message; echo $prefix_Message'>)} ) terminator: <Op_Semi ';'> ) (C {(echo)} {($ VSub_QMark '$?')}) ] ) ] )