ojblass
ojblass

Reputation: 21620

Very strange redirecting stdout and stderr issues can someone explain them?

I have two calls that produce very different output:

Call one:

dmake -m _makefile_.m  1>> _results.out 2>> _results.out

Call two:

dmake -m _makefile_.m >2&1 >_results.out

dmake does a compile of sorts and the first call correctly inlines compile errors whereas the second one puts all the compile errors at the top. I was always of the opinion that both of these were equivalent. What exactly are the differences between these two calls? Is this because of buffering?

Upvotes: 2

Views: 181

Answers (1)

Keith Thompson
Keith Thompson

Reputation: 263257

>2&1 is not the right syntax; it will redirect the output of the dmake command to a file called 2 (running it in background), then attempt to run a command called 1 with its output redirected to _results.out.

You want:

dmake -m _makefile_.m >_results.out 2>&1

Change > to >> if you want to append to the file.

I'm not 100% sure whether this will intersperse stdout and stderr the way you want.

Upvotes: 2

Related Questions