Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
color()(set -o pipefail;"$@" 2>&1>&3|sed $'s,.*,\e[31m&\e[m,'>&2)3>&1
if [ ! -z "$PS1" ] && [ -z "$MY_BASH" ]; then
export MY_BASH=1
color bash -l "$@"
exit "$?"
fi
export PROMPT_COMMAND='ret=$?; if [ $ret -ne 0 ] ; then echo -e "returned \033[01;31m$ret\033[00;00m"; fi'

hilite {shell} [args].echo $'\e[32mabc' >&2: stderr подсвечивается зелёным, как и было запрошено.PS1="\\[^[[32m\\]$PS1" в bash: приглашение подсвечивается зелёным, проблем с определением длины отображаемой строки у bash нет. Работает и source ~/.vam/powerline/powerline/bindings/bash/powerline.sh: получаю приглашение ко вводу, предоставляемое powerline без каких‐либо заметных проблем.data.err = dup(2);
/* Standard file descriptors. */
#define STDIN_FILENO 0 /* Standard input. */
#define STDOUT_FILENO 1 /* Standard output. */
#define STDERR_FILENO 2 /* Standard error output. */
struct stderr_thread_data* data = (struct stderr_thread_data*)void_thread_args; int n; char buf[1024];
struct stderr_thread_data* data = void_thread_args; int n; char buf[1024];
Удобная работа в консоли, или красим STDERR в красный цвет