2014-10-22 4 views
0

У меня есть скрипт, который устанавливает различные переменные.Ограничить конкретную переменную в Bash

maxMemSize=8g 
poolThreadCount=4 
... 

Мне нужно выполнить этот скрипт на нескольких системах, и все они запущены CentOS. Теперь требуется ограничить настройку некоторой из этих переменных на некоторых системах. Например, в системе 1 maxMemSize не должен быть установлен, тогда как в системе2 установка poolThreadCount должна быть ограничена.

Как мы можем установить readonly переменные окружения, чтобы ограничить export для этих конкретных переменных, можем ли мы сделать подобный трюк, чтобы ограничить установку определенных переменных в сценариях bash?

ответ

0

Чтобы ограничить переменную повторное определение вы можете установить его как только для чтения в вашем ~/.bashrc или в любой другой файл, позволяет сказать ~/.readonly:

readonly maxMemSize=3g 
readonly poolThreadCount=2 

Теперь вам нужно указать свой Баш, который файл инициализации должен выполнить до он начинает выполнение. Это определяется переменной окружения $BASH_ENV:

export BASH_ENV=~/.bashrc 

или

export BASH_ENV=~/.readonly 

Теперь выполнить ваш скрипт под bash

bash initThreadRead.sh 
+0

А? Как это обеспечивает соблюдение требования о том, чтобы переменная * * не была установлена ​​на некоторых системах? Или я неправильно понимаю вопрос? – tripleee

+0

@ tripleee установить 'maxMemSize' на system1 и' poolThreadCount' на system2. Это приведет к тому, что скрипт на system1 должен установить 'poolThreadCount', но не' maxMemSize' и наоборот. – Tariq

Смежные вопросы