Для этого вам необходимо настроить initdefault на уровень запуска 3. Вы можете сделать это следующим образом:
cp /etc/inittab /etc/inittab.bak #good idea to make a backup of /etc/inittab
sed -i 's/id:5:initdefault:/id:3:initdefault:/' /etc/inittab
Значением по умолчанию конфигурации git color.ui
является auto
, которое использует цвета только при выводе на TTY. Вы можете изменить это в своей конфигурации на always
, чтобы вывод был окрашен независимо.
Наиболее полезным для вашего варианта использования является опция -c
для git
, которая позволяет переопределить значение конфигурации только для текущей команды. Вы можете использовать это, чтобы установить color.ui
на always
:
var=$(git -c color.ui=always status)
printf '%s\n' "$var"
Обратите внимание, что во втором примере
var=$(echo "Text in \n\e[34mBlue")
echo -e $var
на самом деле это строка echo -e
, которая вызывает появление цветов -управляющие коды не были интерпретированы echo
внутри подстановки команды, а обратная косая черта и другие символы были буквально там. Дело не в том, что цветовые коды были сохранены в то время и забыты, когда они пришли из git
-, они были созданы в конце в одном случае и никогда в другом.
Попробуйте это:
var=$(git status)
echo "$var"
Речь идет о механизме цитирования bash, без ""
цитирования вокруг $var
, newline
внутри рассматривается как разделитель токенов так же, как blank space
. Дополнительную информацию см. в руководстве bash