.
├── develop
│ ├── app
│ │ └── values.yaml
│ └── values.yaml
├── prod
│ ├── app
│ │ └── values.yaml
│ └── values.yaml
└── stand
├── app
│ └── values.yaml
└── values.yaml
сам скрипт
#!/bin/bash
for item in develop stand prod
do
echo "=== $item"
PERSON_URL=$(grep POSTGRES_URL: repo/$item/values.yaml | cut -d: -f '2 3 4 5')
ORGANISATION_URL=$(grep POSTGRES_URL_UL: repo/$item/values.yaml | cut -d: -f '2 3 4 5')
#Добавляем пробелы от начала строки
PERSON_URL=$(echo " DATASOURCE_PERSON_URL:$PERSON_URL")
ORGANISATION_URL=$(echo " DATASOURCE_ORGANISATION_URL:$ORGANISATION_URL")
echo "$PERSON_URL" >> repo/$item/app/service1/values.yaml
echo "$ORGANISATION_URL" >> repo/$item/app/service1/values.yaml
echo " DATASOURCE_PERSON_USERNAME: \"dose_db_admin\"" >> repo/$item/app/service1/values.yaml
echo " DATASOURCE_ORGANISATION_USERNAME: \"dose_db_organisation_admin\"" >> repo/$item/app/service1/values.yaml
echo "= проверка"
grep DATASOURCE_PERSON_URL repo/$item/app/service1/values.yaml
grep DATASOURCE_ORGANISATION_URL repo/$item/app/service1/values.yaml
grep DATASOURCE_PERSON_USERNAME repo/$item/app/service1/values.yaml
grep DATASOURCE_ORGANISATION_USERNAME repo/$item/service1/values.yaml
done
1. В цикле for, переменная item последовательно получает значения "develop", "stand", "prod".2. Для каждого значения item (обозначены среды, для которых созданы директории), выполняются следующие действия:
- Выводится сообщение с названием текущего item.
- Выполняется команда grep, которая ищет строку, содержащую POSTGRES_URL, в файле repo/$item/values.yaml.
Результат поиска записывается в переменную PERSON_URL и ORGANISATION_URL.
- Выполняется команда cut, которая разделяет найденную строку POSTGRES_URL по символу ":", и выбирает 2, 3, 4 и 5 поля.
Результат разделения записывается обратно в переменные PERSON_URL и ORGANISATION_URL.
- К переменным PERSON_URL и ORGANISATION_URL добавляются пробелы в начале строки с помощью команды echo.
- Содержимое переменных PERSON_URL и ORGANISATION_URL, а также другие строчные значения, записываются в файл repo/$item/app/service1/values.yaml с помощью команды echo.
- Выводится сообщение "= проверка".
- Используя команду grep, производится поиск соответствующих значений в файле repo/$item/app/service1/values.yaml и выводится на экран.
Таким образом, скрипт выполняет обработку нескольких значений и файлов, находит некоторые строки, добавляет значения в файлы values.yaml и выводит результаты проверки вставленых переменных на экран.