Как получить bash для вывода цвета при запуске в скрипте? - PullRequest
0 голосов
/ 27 апреля 2018

Я вытащил пример из этого вопроса, чтобы создать следующий пример:

#!/bin/bash
export GREEN='\033[0;32m'
export RED='\033[0;31m'
export NC='\033[0m' # No Color
echo "I ${RED}love${NC} ${GREEN}Stack Overflow${NC}"

Это работает, как и ожидалось, если я исходный файл. Однако запуск его в качестве исполняемого файла приводит к тому, что управляющие коды выводятся на экран вместо изменения цветов. Я полагаю, мне нужно отправить флаг в bash, чтобы включить цвета, но что?

1 Ответ

0 голосов
/ 27 апреля 2018

Здесь экспорт не требуется, и проще убедиться, что в каждую переменную добавлен правильный escape-символ, вместо того, чтобы echo или printf сделать замену.

GREEN=$'\e[0;32m'
RED=$'\e[0;31m'
NC=$'\e[0m'

echo "I ${RED}love${NC} ${GREEN}Stack Overflow${NC}"

Еще лучше, используйте tput, чтобы получить правильную последовательность для вашего терминала, вместо того, чтобы предполагать escape-последовательности ANSI.

GREEN=$(tput setaf 2)
RED=$(tput setaf 1)
NC=$(tput sgr0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...