У меня возникла следующая проблема:

На Bash я установил:

COLOR="0;31" #red color

Если я сделаю

echo -e "\e[00;31mRED\e[00m" 

я получил

RED <- красным цветом на терминале

Однако если я сделаю

echo -e "\e[0$COLORm \RED\e[00m"

Я просто получаю

RED <- без цветов

Как я могу печатать, используя цвет и мою переменную $COLOR ?

3 ответа3

1

bash ничего не знает о переменной COLORm . Но следующий пример будет работать

COLOR="0;31m"
echo -e "\e[0$COLOR \RED\e[0m"
0

Используйте фигурные скобки, чтобы изолировать имя переменной и устранить неоднозначность в выражениях, где имена переменных примыкают к некоторым буквенным символам (таким как $ {hello} world) или другим хитрым местам:

0

Используйте ${var} - например, \e[0;${COLOR}m -, чтобы отделить имя переменной от окружающего текста.

Также можно использовать printf "\e[0;%sm %s \e[m\n" "$COLOR" "RED"

(Примечание: \e[00;31m не обязательно; \e[0;31m или просто \e[;31m в порядке. То же самое относится к \e[00m)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .