LINUX.ORG.RU

[shell] Распарсить конфиг

 


0

0

Есть конфиг:

опция0 = "параметр 0"
опция1 = "параметр 1"
опция2 = "параметр 2"
...
Как сделать что бы в shell скрипте появились переменные с именами «опция*» и значениями «параметр *»?


немного не то, но из той же оперы, авось, пригодится..

вот какую штуковину нашел на шеле. она парсит инишные файлы.
ссылка на первоисточник: http://ajdiaz.wordpress.com/2008/02/09/bash-ini-parser/

как говорится, works like a charm, только окончания строк в ини-файле д.б. юниксовые.

aol ★★★★★
()
Ответ на: комментарий от boombick

Вы победили в конкурсе «самый короткий ответ по существу в рунете»! Ваш приз (слон) доберётся до вас как только так сразу.

legolegs ★★★★★
()
Ответ на: комментарий от alex_custov

Какой евал? :) Я ж ответил уже, это команда source, которая имеет сокращенный вариант в виде точки. Но пробелы да, надо убрать

boombick ★★★★★
()
Ответ на: комментарий от alex_custov

это возможно. (повтыкай в код, который по ссылке в моем предыдущем каменте)

ты ж будешь пробелы не физически стирать из файла конфигурационного!

aol ★★★★★
()

Чесный парсер ini-конфигов (с секциями, чтение и изменение) делается на shell+sed в несколько строк.

Led ★★★☆☆
()
Ответ на: комментарий от boombick

Бгг. А я то думал что значит когда точку ставят перед скриптом. Думал что это выполнить скрипт. А source это перечитать конфиги их скрипта О_о. А оказывается это одно и тоже. Вот я дурак.

facelift
()
Ответ на: комментарий от facelift
        .  filename [arguments]
       source filename [arguments]
              Read and execute commands from filename in the current shell environment and return the exit status of the  last  command  exe‐
              cuted  from filename. 

Причем ключевое слово: in the current shell environment чем оно и отличается от той же команды «sh filename»

xydo ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.