Intereting Posts
Сила отправки писем на порт 587 Поведение команды `du` с флагом` -L` Блокировать страны на основе IP в брандмауэре Почему QEMU не может использовать память буферов памяти Linux? Как я могу удалить косую черту или слово в zsh? Миграция с Debian sid / нестабильная на тестирование Как показать последнюю команду с расширением функции в bash Запустить сценарий оболочки из crontab после остановки / запуска / перезапуска сервера Каковы способы просмотра файлов в каталоге с несчетными файлами? Как восстановить конфигурацию по умолчанию ALSA после возврата изменений в .asoundrc? Правильный способ установки диспетчера отображения mdm в ArchLinux В Linux у меня другой цвет для того же самого, чем в Windows Как рассчитать среднее количество столбцов по строкам, а также максимальное количество столбцов в файле в unix? В чем разница между двоичным файлом и библиотекой? Почему Linux не защищает ОС от обмена?

Обновление файлов конфигурации в скрипте, который ссылается на них?

У меня нет проблем с добавлением файлов конфигурации в данный скрипт, но автоматическое их обновление – другое дело. В этом случае я предоставляю несколько переменных сценарию, и я хотел бы, чтобы сценарий мог изменять значения, предоставленные конфигурационным файлом. Есть ли стандартный способ изменить значение переменной в запущенном скрипте, а затем обновить файл конфигурации соответственно? Мой нынешний подход подходит для строки, содержащей переменную, и меняет ее содержимое, но я чувствую, что должен быть лучший способ.

Например, представьте себе программу, которая генерирует произвольный текстовый файл:
Строка в файле конфигурации, определяющая переменную, доступную для программы:

EXIT_ON_GEN="true" //exit on successful generation of text file if true 

Пользователь выбирает пункт меню, который указывает, что они хотели бы остаться в программе, потому что им нравится генерировать произвольный текст. Было бы просто просто установить для него значение false для текущего экземпляра программы, но как лучше всего изменить сам файл конфигурации, поэтому пользователю не нужно возвращаться и изменять настройки каждый раз, когда они запускают его?

Использование sed

Начиная с этого файла:

 $ cat >file EXIT_ON_GEN="true" //exit on successful generation of text file if true 

Один метод изменения true на false (и отображение новой версии на терминале) будет использовать sed:

 $ sed 's/^EXIT_ON_GEN=[^[:space:]]*/EXIT_ON_GEN="false"/' file EXIT_ON_GEN="false" //exit on successful generation of text file if true 

Чтобы вместо этого внести изменения в файл, используйте параметр -i :

 $ sed -i 's/^EXIT_ON_GEN=[^[:space:]]*/EXIT_ON_GEN="false"/' file 

Использование awk

 $ awk -F'"' -v OFS='"' '/^EXIT_ON_GEN/{$2="false"} 1' file EXIT_ON_GEN="false" //exit on successful generation of text file if true