#python #shell #yaml #sh
#python #оболочка #yaml #sh
Вопрос:
Помимо использования yq, есть ли способ получить вложенную переменную из файла YAML в shellscript?
Пример: рассмотрим следующий файл yaml
test.yaml
main:
item1: value1
item2: value2
Есть ли способ извлечь значения item1 и item2 в переменные shellscript?
Использование grep,
item=$(grep -h "item1" test.yaml)
actual=${item#*:}
Приведенное выше даст нужное мне значение, но есть ли лучший способ приблизиться к нему?
Это полученное значение будет использоваться для других задач в shellscript
У меня есть возможность использовать python с библиотекой yaml, а затем запустить скрипт python из shellscript, но какой способ сделать это был бы оптимальным?
Я бы предпочел, чтобы решение не включало установку каких-либо пакетов / зависимостей, но предложения приветствуются
Комментарии:
1. Использование
grep
для структурированных форматов, таких как XML, JSON, YAML и т. Д., Никогда не является хорошей идеей. Интересно, почему вы отклоняетеyq
. Это было бы, на мой взгляд, «оптимальным» способом.2. Не имеет смысла говорить, что вы не хотите устанавливать какие-либо пакеты. Ваша оболочка (вероятно) является пакетом, как и grep.
3. Как правило, если вам необходимо установить ограничения в отношении того, какой ответ вы принимаете, пожалуйста, объясните причины этих ограничений, чтобы мы могли понять ваши требования. Также обратите внимание, что такие термины, как optimal , недостаточно четко определены в сложных областях, таких как сценарии оболочки, и поэтому неясно, для чего вы хотите оптимизировать. Скорость? Использование памяти? Строки кода? Обычно вы не получите все из одного единственного решения.