Мне нужно обновить исходный файл конфигурации в сценарии оболочки в конце выполнения сценария

#linux #bash #shell

#линукс #удар #ракушка

Вопрос:

Мне нужно обновить исходный файл конфигурации в сценарии оболочки в конце выполнения сценария. У меня есть дата по умолчанию в файле date_cfg.lkp.

 '''   sdate=2021-12-09  '''  

Мой файл сценария оболочки принимает дату в качестве параметра, и он должен увеличить дату и обновить эту дату в приведенном выше файле date_cfg.lkp, и это работает, если я не создаю файл, но если я создаю файл lkp в сценарии, он не обновляется, а также такое же поведение в командной строке.:

 '''  #!/usr/bin/bash  date1=$1  cfg=~/date_cfg.lkp  source $cfg  date1=$(date -d"$date1   1 day"  "%Y%m%d")  date1=$(date1 -d $date1  "%Y-%m-%d")  echo $date1  echo $cfg_date  sed -c -i "s/($sdate *= *).*/1$date1/" $cfg  '''  

Пожалуйста, помогите мне обновить поле sdate, хранящееся в файле lkp, с увеличенной датой в сценарии во время поиска, и, пожалуйста, обратите внимание, что мне нужно создать файл, чтобы прочитать некоторые другие поля.

Ответ №1:

Попробуйте изменить последнюю строку следующим образом.

 sed -c -i "s/$sdate/$date1/" $cfg  

Ответ №2:

ваша команда sed не очень хороша:

 sed -i "/sdate=/ s/.*/sdate=$date1/" date_cfg.lkp  

Что такое-c в команде ? У меня нет этого аргумента.