Ваша интерактивная оболочка bash
или что-то совершенно другое? echo
общеизвестно непереносимо в отношении того, как он обрабатывает специальные символы, такие как \t
. В bash обычное echo
не расширяет их, но, например. зш
, кажется.
$ zsh -c 'echo "foo\tbar"'
foo bar
$ bash -c 'echo "foo\tbar"'
foo\tbar
Bash echo -e
и zsh echo -E
инвертируют вышеописанное поведение.
Кроме того, вы, вероятно, захотите поместить эти переменные в кавычки:
#/bin/bash
echo -e "$name\t$pftot\t$etc..."
Конечно, переносимым решением будет printf
:
printf "%s\t%s\t%s..." "$name" "$pftot" "$..."
Но нетрудно понять, почему вместо этого можно было бы использовать echo
.
Похоже, программа пытается использовать режимы «жирный» + «обратный», а не просто обратный. Это приводит к «темно-серому» на «светло-сером»
.Не имея возможности изменить то, что использует программа, вы можете изменить сами цвета. Темно-серый — это #8, тогда как светло-серый — это #7 (черный — это 0, а белый — это 15 (F ), но вам не нужно их менять )Консоль Linux имеет escape-код ESC ] P n rrggbb
для переопределения цветов, чтобы вы могли определить их, например, printf ']033]P7cccccc\033]P8333333'
определить для них цвета, которые будут иметь больший контраст друг с другом, но все же будут отличаться от черного и белого, чтобы «жирный» и не -«жирный» текст можно было отличить друг от друга. Вы можете поэкспериментировать с разными значениями. Ваше изображение имеет 808080 и cccccc, предполагаемые значения по умолчанию (, которые, я думаю, могут не устанавливаться при запуске, но сбрасываются с помощьюESC ] R
)в Linux: 555555 и аааааа.
Основная проблема заключается в том, что "белый " Передний план выглядит как серый, потому что чисто белый цвет, который вы хотите, является жирным цветом. Но использование шрифтов с 512 глифами, как это сделано для Unicode, делает жирные цвета недоступными.
Дополнительная литература: