Действительно ли это - хорошая идея поместить переменные среды в/usr/local/bin

используйте 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

2
03.10.2013, 17:52
3 ответа

Действительно ли это - хороший подход?

Я вполне уверен все сценарии, о которых Вы говорите, сценарии оболочки. В этом случае Вы могли просто поместить все свои переменные в конфигурационный файл:

db-server=db-2.domain.com

Место это в стандартном месте (например, /usr/local/etc/myapp/) и источник это в других сценариях:

. /usr/local/etc/myapp

Можно также использовать просто /etc, очевидно.

2
27.01.2020, 22:06

Рекомендуемый метод должен просто добавить переменные к /etc/environment. Этот файл читается на входе в систему (из документов Ubuntu):

Настройки переменной среды, которые влияют на систему в целом (а не просто конкретный пользователь) не должны быть помещены ни в один из многих сценариев системного уровня, которые выполняются, когда система или настольная сессия загружаются, но в

/etc/environment - Этот файл конкретно предназначен для настроек переменной среды в масштабе всей системы. Это не файл сценария, а скорее состоит из выражений присваивания, один на строку. А именно, это хранилища файлов локаль в масштабе всей системы и настройки пути.

Так, просто отредактируйте /etc/environment/ и добавьте

db-server=db-2.domain.com
1
27.01.2020, 22:06

Я сказал бы "нет" той идее. Тот каталог /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
0
27.01.2020, 22:06

Теги

Похожие вопросы