(command.CommandList children: [ (C {<echo>} {(SQ <'--- multilog prints nothing with no actions'>)}) (command.CommandList children: [ (command.Sentence child: (command.Pipeline children: [ (command.Subshell child: (command.CommandList children: [ (command.Sentence child: (C {<echo>} {<one>}) terminator: <Id.Op_Semi _> ) (C {<echo>} {<two>}) ] ) ) (C {<multilog>}) ] negated: F ) terminator: <Id.Op_Semi _> ) (C {<echo>} {($ Id.VSub_QMark '$?')}) ] ) (C {<echo>} {(SQ <'--- multilog e prints to stderr'>)}) (command.CommandList children: [ (command.Sentence child: (command.Pipeline children: [ (command.Subshell child: (command.CommandList children: [ (command.Sentence child: (C {<echo>} {<one>}) terminator: <Id.Op_Semi _> ) (C {<echo>} {<two>}) ] ) ) (command.Simple words: [{<multilog>} {<e>}] redirects: [(redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})] do_fork: T ) ] negated: F ) terminator: <Id.Op_Semi _> ) (C {<echo>} {($ Id.VSub_QMark '$?')}) ] ) (C {<echo>} {(SQ <'--- multilog inserts newline after partial final line'>)}) (command.CommandList children: [ (command.Sentence child: (command.Pipeline children: [ (command.Subshell child: (command.CommandList children: [ (command.Sentence child: (C {<echo>} {<one>}) terminator: <Id.Op_Semi _> ) (command.Pipeline children: [(C {<echo>} {<two>}) (C {<tr>} {<-d>} {(SQ <'\\012'>)})] negated: F ) ] ) ) (command.Simple words: [{<multilog>} {<e>}] redirects: [(redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})] do_fork: T ) ] negated: F ) terminator: <Id.Op_Semi _> ) (C {<echo>} {($ Id.VSub_QMark '$?')}) ] ) (C {<echo>} {(SQ <'--- multilog handles multiple actions'>)}) (command.CommandList children: [ (command.Sentence child: (command.Pipeline children: [ (command.Subshell child: (command.CommandList children: [ (command.Sentence child: (C {<echo>} {<one>}) terminator: <Id.Op_Semi _> ) (C {<echo>} {<two>}) ] ) ) (command.Simple words: [{<multilog>} {<e>} {<e>}] redirects: [(redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})] do_fork: T ) ] negated: F ) terminator: <Id.Op_Semi _> ) (C {<echo>} {($ Id.VSub_QMark '$?')}) ] ) (C {<echo>} {(SQ <'--- multilog handles wildcard -'>)}) (command.CommandList children: [ (command.Sentence child: (command.Pipeline children: [ (command.Subshell child: (command.CommandList children: [ (command.Sentence child: (C {<echo>} {<one>}) terminator: <Id.Op_Semi _> ) (C {<echo>} {<two>}) ] ) ) (command.Simple words: [{<multilog>} {(SQ <'-*'>)} {<e>}] redirects: [(redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})] do_fork: T ) ] negated: F ) terminator: <Id.Op_Semi _> ) (C {<echo>} {($ Id.VSub_QMark '$?')}) ] ) (C {<echo>} {(SQ <'--- multilog handles literal +'>)}) (command.CommandList children: [ (command.Sentence child: (command.Pipeline children: [ (command.Subshell child: (command.CommandList children: [ (command.Sentence child: (C {<echo>} {<one>}) terminator: <Id.Op_Semi _> ) (C {<echo>} {<two>}) ] ) ) (command.Simple words: [{<multilog>} {(SQ <'-*'>)} {(SQ <'+one'>)} {<e>}] redirects: [(redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})] do_fork: T ) ] negated: F ) terminator: <Id.Op_Semi _> ) (C {<echo>} {($ Id.VSub_QMark '$?')}) ] ) (C {<echo>} {(SQ <'--- multilog handles fnmatch -'>)}) (command.CommandList children: [ (command.Sentence child: (command.Pipeline children: [ (command.Subshell child: (command.CommandList children: [ (command.Sentence child: (C {<echo>} {<one>}) terminator: <Id.Op_Semi _> ) (C {<echo>} {<two>}) ] ) ) (command.Simple words: [{<multilog>} {<F>} {(SQ <'-*'>)} {<e>}] redirects: [(redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})] do_fork: T ) ] negated: F ) terminator: <Id.Op_Semi _> ) (C {<echo>} {($ Id.VSub_QMark '$?')}) ] ) (C {<echo>} {(SQ <'--- multilog handles fnmatch +'>)}) (command.CommandList children: [ (command.Sentence child: (command.Pipeline children: [ (command.Subshell child: (command.CommandList children: [ (command.Sentence child: (C {<echo>} {<one>}) terminator: <Id.Op_Semi _> ) (command.Sentence child: (C {<echo>} {<two>}) terminator: <Id.Op_Semi _> ) (C {<echo>} {<one>} {<two>}) ] ) ) (command.Simple words: [{<multilog>} {<F>} {(SQ <'-*'>)} {(SQ <'+*o*'>)} {<e>}] redirects: [(redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})] do_fork: T ) ] negated: F ) terminator: <Id.Op_Semi _> ) (C {<echo>} {($ Id.VSub_QMark '$?')}) ] ) (C {<echo>} {(SQ <'--- multilog handles long lines for stderr'>)}) (command.CommandList children: [ (command.Sentence child: (command.Pipeline children: [ (C {<echo>} { < 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678 > } ) (command.Simple words: [{<multilog>} {<e>}] redirects: [(redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})] do_fork: T ) ] negated: F ) terminator: <Id.Op_Semi _> ) (C {<echo>} {($ Id.VSub_QMark '$?')}) ] ) (command.CommandList children: [ (command.Sentence child: (command.Pipeline children: [ (C {<echo>} { < 01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 > } ) (command.Simple words: [{<multilog>} {<e>}] redirects: [(redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})] do_fork: T ) ] negated: F ) terminator: <Id.Op_Semi _> ) (C {<echo>} {($ Id.VSub_QMark '$?')}) ] ) (command.CommandList children: [ (command.Sentence child: (command.Pipeline children: [ (C {<echo>} { < 012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890 > } ) (command.Simple words: [{<multilog>} {<e>}] redirects: [(redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})] do_fork: T ) ] negated: F ) terminator: <Id.Op_Semi _> ) (C {<echo>} {($ Id.VSub_QMark '$?')}) ] ) (C {<echo>} {(SQ <'--- multilog handles status files'>)}) (C {<rm>} {<-f>} {<test.status>}) (command.CommandList children: [ (command.Sentence child: (command.Pipeline children: [ (command.Subshell child: (command.CommandList children: [ (command.Sentence child: (C {<echo>} {<one>}) terminator: <Id.Op_Semi _> ) (C {<echo>} {<two>}) ] ) ) (C {<multilog>} {<Id.Lit_Equals '='> <test.status>}) ] negated: F ) terminator: <Id.Op_Semi _> ) (C {<echo>} {($ Id.VSub_QMark '$?')}) ] ) (command.Pipeline children: [ (command.Simple words: [{<uniq>} {<-c>}] redirects: [(redir op:<Id.Redir_Less '<'> loc:(redir_loc.Fd fd:0) arg:{<test.status>})] do_fork: T ) (C {<sed>} {(SQ <'s/[ \t]*[ \t]/_/g'>)}) ] negated: F ) (C {<echo>} {(SQ <'--- multilog t has the right format'>)}) (command.Pipeline children: [ (command.Subshell child: (command.CommandList children: [ (command.Sentence child: (C {<echo>} {<ONE>}) terminator: <Id.Op_Semi _> ) (C {<echo>} {<TWO>}) ] ) ) (command.Simple words: [{<multilog>} {<t>} {<e>}] redirects: [(redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})] do_fork: T ) (C {<sed>} {(SQ <'s/[0-9a-f]/x/g'>)}) ] negated: F ) ] )