#bash #configuration #environment-variables
Вопрос:
У меня есть файл .conf с меткой и переменной, который я пытаюсь переместить в файл .env. Как я могу этого добиться?
Это то, что у меня есть в моем файле .conf
[[inputs.snmp]] #Label
agents = ["1.1.1.1:111","2.2.2.2:111","2.3.3.3:111"] #Variable
version = 2 #Variable
Я пытаюсь сделать что-то подобное в файле .env
VAR_FOR_CONF_FILE='[[inputs.snmp]]n agents= ["1.1.1.1:111","2.2.2.2:111","2.3.3.3:111"]n version=2'
Я надеялся, что смогу использовать $VAR_FOR_CONF_FILE
в своем файле .conf вместо [[inputs.snmp]]agents = ["1.1.1.1:111","2.2.2.2:111","2.3.3.3:111"]
но я продолжаю получать эту ошибку Error parsing data: line 7: invalid TOML syntax
$VAR_FOR_CONF_FILE
(я не уверен, что получаю эту ошибку, потому что у меня неправильный синтаксис в файле .env или я неправильно объявляю файл $VAR_FOR_CONF_FILE в файле .conf)
Правильно ли я это делаю (или вообще возможно сделать то, что я пытаюсь сделать)?
(Примечание: Я пытаюсь сделать это, чтобы я мог просто использовать $VAR_FOR_CONF_FILE
вместо жесткого кодирования вещи в файле .conf)
Комментарии:
1. Вам лучше показать строку кода, которая генерирует ошибку. Кстати, это не сообщение об ошибке, выданное самим bash.
2. @user1934428 Эта строка 7-это строка над ошибкой, которую я опубликовал. Вот что я получаю.
3. Это всего лишь присвоение переменной. Это не может привести к такой ошибке. Смотри здесь .
4. @user1934428 если вы спрашиваете, как я использую назначение переменной в моем файле .env, то я просто использую файл $VAR_FOR_CONF_FILE (который тоже находится в строке 7 — извините за путаницу)
5. Я не вижу в вашем посте, как бы вы это использовали. Нет смысла обсуждать ошибку, которую вы получаете, если мы не видим код, который ее создает.
Ответ №1:
Я пытаюсь использовать файл VAR_FOR_CONF_FILE в файле .conf
Если программа анализа файлов .conf не поддерживает подстановку переменных, изменить файл .conf невозможно, но это можно сделать автоматически:
sed -i "s/<VAR_FOR_CONF_FILE>/$VAR_FOR_CONF_FILE/" my.conf