В питоне это делается примерно так:
Есть некий конфиг «settings»
в нем есть записи типа
[root_info]
root_login = root
root_pass = 12345
root_email = root@localhost.localdomain
[urls_info]
global_url=192.168.0.1
Скажем я хочу задавать ip, пароли и др через переменные в скрипте — делается примерно так
settings = SafeConfigParser()
settings.read(’./settings’)
USER = settings.get(’root_info’, 'root_login’)
PASS = settings.get(’root_info’, 'root_pass’)
MYIP = settings.get(’urls_info’, 'global_url’)
потом подставляю переменные USER PASS MYIP куда мне там надо…
Как такую же штуку реализовать в bash, что бы из ТОГО ЖЕ конфига считывать данные в переменные?
Подчеркну я буду использовать один и тот же конфиг для bash и для python скриптов!
Последние комментарии
- OlegL, 17 декабря 2023 года в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
был бы просто: переменная = значение — тогда довольно просто. а вот с секциями — не знаю.
Распотрошить сначала по секциям во временные файлы, потом читать из соответствующих файлов?
На bash такое довольно неудобно парсить. Если есть возможности сменить формат конфига, то стоит его сменить на что-нибудь с меньшей контекстной зависимостью:
А если сменить никак, то можно написать отдельную утилиту для извлечения/добавления данных. Утилитку, которая будет выдавать данные в удобном виде, например, типа:
Обломно может быть запускать эту утилитку для того, чтобы извлечь десяток значений — тормозить будет, но это решается либо написанием утилитки на C, либо можно научить утилитку выдавать сразу несколько ключей конфига, по одному на строчку — это будет несколько быстрее.