используйте printf:
printf "\e[%sm%s\e[00m\n" <some_number> <text_in_colour>
например.
printf "\e[%sm%s\e[00m\n" 32 yodle
последнее \n
добавляет символ новой строки.
видеть возможные значения попытки что-то как:
for i in {0..9} {30..38} {90..98} {100..108};
do
printf "%d:\e[%sm%s\e[00m\n" $i "$i" yodle;
done
помимо цвета можно добавить модификаторы как полужирный или подчеркнуть или окрашенный текст с цветным фоном путем объединения чисел. Для создания синего текста с серым фоном, который подчеркивается и striked посредством использования:
printf "\e[%sm%s\e[00m\n" "4;9;34;107" yodle
Удачи,
/B2S
Действительно ли это - хороший подход?
Я вполне уверен все сценарии, о которых Вы говорите, сценарии оболочки. В этом случае Вы могли просто поместить все свои переменные в конфигурационный файл:
db-server=db-2.domain.com
Место это в стандартном месте (например, /usr/local/etc/myapp/
) и источник это в других сценариях:
. /usr/local/etc/myapp
Можно также использовать просто /etc
, очевидно.
Рекомендуемый метод должен просто добавить переменные к /etc/environment
. Этот файл читается на входе в систему (из документов Ubuntu):
Настройки переменной среды, которые влияют на систему в целом (а не просто конкретный пользователь) не должны быть помещены ни в один из многих сценариев системного уровня, которые выполняются, когда система или настольная сессия загружаются, но в
/etc/environment - Этот файл конкретно предназначен для настроек переменной среды в масштабе всей системы. Это не файл сценария, а скорее состоит из выражений присваивания, один на строку. А именно, это хранилища файлов локаль в масштабе всей системы и настройки пути.
Так, просто отредактируйте /etc/environment/
и добавьте
db-server=db-2.domain.com
Я сказал бы "нет" той идее. Тот каталог /usr/local/bin
предназначен для исполняемых файлов, которые локальны для поля и не части какого-то конкретного пакета (обычно).
Вместо того, чтобы делать его, некоторая таинственная установка, что у Вас есть выполнение, поместила переменные, где они были бы явно очевидный для кого-то еще, который, возможно, должен был бы выполнить Вашу задачу.
Я поместил их в файл в Вашем $HOME
каталог и просто источник тот файл от Вашего $HOME/.bashrc
.
if [ -f $HOME/.my_aws_env ]; then
. $HOME/.my_aws_env
fi
Или можно быть спокойными и бедро и сделать это в одной строке:
[ -f $HOME/.my_aws_env ] && . $HOME/.my_aws_env