Итак, я прочитал самый простой способ использовать файлы .conf для сценариев bash
, чтобы использовать source
для загрузки таких файлов. Теперь, если я хочу отредактировать этот файл?Как я могу легко редактировать файл .conf?
Некоторые код, который я нашел делает очень хорошую работу:
function set_config(){
sed -i "s/^\($1\s*=\s*\).*\$/\1$2/" $conf_file
}
Но, если переменная еще не определена, она не определяет его, и не проверить, если прошло хорошо параметры, ISN 't secure, не обрабатывает значения по умолчанию и т. д.
Есть ли надежные инструменты/код для редактирования файла .conf, которые содержат пары key = "value"? Например, я хотел бы быть в состоянии сделать что-то вроде этого:
$conf_file="my_script.conf"
conf_load $conf_file #should create the file if it doesn't exist !
read=$(conf_get_value "data" "default_value") #should read the value with key "data", defaulting to "default_value"
if [[ $? = 0 ]] #we should be able to know if the read was successful
then
echo "Successfully read value for field \"data\" : $read"
else
echo "Default value for field \"data\" : $read"
fi
conf_set "something_new" "a great value!" #should add the key "something_new" as it doesn't exist
conf_set "data" "new_value" #should edit the value with key "data"
if [[ $? = 0 ]]
then
echo "Edit successful !"
else #something went wrong :-/
echo "Edit failed !"
fi
перед запуском этого кода, файл конф будет содержать
data="some_value"
и после того, как он будет
data="new_value"
something_new="a great value!"
и код должен выводиться
Successfully read value for field "data" : some_value
Edit successful !
Я использую версию bash
4.3.30. Спасибо за помощь.
Можете ли вы привести нам пример до и после данных? –
@ Mr.Llama Отредактирован вопрос, чтобы сделать его более четким – Magix