Is it possible to configure the terminal in OS X to show stderr
output automatically in a different colour than stdout
output from a process?
Or is this only possible if the process is outputting coloured output?
Ask Different is a question and answer site for power users of Apple hardware and software. It only takes a minute to sign up.
Sign up to join this communityThere is no straightforward solution, but there are at least a few workarounds available to do this.
You can install hilite by building the single C file (hilite.c
in this case) or by using brew install hilite
(with homebrew installed on the system). Use it as hilite <command>
.
You can use the command from this answer on serverfault (substitute command
with the name of your script/command) to make stderr appear in red (for other colors, refer the ANSI escape sequences list and change the 31m in the below command accordingly):
command 2> >(while IFS= read -r line; do echo -e "\e[01;31m$line\e[0m" >&2; done)
You can use stderred to color stderr in red.
You may want to have a look at stderred which allows to output Stderr in red.
It's OSX compatible and there is a manual to install it on OSX.
hilite
andstderred
are unmaintained and broken and I am still looking for a workaround.hilite
via Homebrew, it still works as expected (would be surprised if not actually, it uses very basic functionality to accomplish its task).stderred
may not work any longer as it seems to change the location dynamic libraries are loaded from, which may be prevented by SIP nowaydays