Команда оболочки для получения значений конфигурации - PullRequest
0 голосов
/ 10 октября 2011

Я использую sh 3.2 в Mac Os X. У меня есть файл test.conf

config1="Configuration 1"
config2="a lot of text"
config3=...

Так что мне нужно только получить параметры config1= и config2=. Как я могу установить переменную, что я могу сделать это:

> echo $variable
Configuration 1

Так просто, но я не делаю этого.

Ответы [ 3 ]

2 голосов
/ 10 октября 2011

искомая сумма source

source test.conf
echo $config1        #echoes Configuration 1

если вам нужно иметь config1 в переменной, добавьте

varible=$config1
1 голос
/ 10 октября 2011

По грубой догадке ...

export `grep 'config1=' /your/config/file`
export `grep 'config2=' /your/config/file`

Но помните, что если вы поместите это в файл сценария оболочки, вам нужно будет проверить файл, а не выполнить его, чтобы установить переменные в текущем экземпляре оболочки.

0 голосов
/ 10 октября 2011

Вы можете сделать это:

variable=`sed -n 's/^config1=//p'`

Или, если вы пытаетесь оценить определенные части вашего файла, попробуйте что-то вроде

eval `grep ^config1= test.conf`

для оценки config1=Configuration 1 текущей оболочкой. (В приведенном вами примере это приведет к синтаксической ошибке, поскольку значение не может содержать пробелы без кавычек.)

Я обычно рекомендую новичкам держаться подальше от кавычек, но в такой ситуации они дают хороший ответ.

...