Чтобы экспортировать более одного правила, а только правила, имя которых указано в списке, я бы использовал следующий код.
#!/usr/bin/bash
# Список имен предметов для экспорта
элементы = (элемент1 элемент2 элемент3)
для элемента в "${items[@]}"; делать
drush rules-export "$item" > "${item}.txt"
сделано
Это проще, чем получить список существующих правил из список правил drush --pipe
, удалите из этого списка элементы, не соответствующие именам правил, которые вы хотите экспортировать, а затем запустите drush правила-экспорт
на левых элементах.
Если у вас есть список имен, которые могут быть либо именами компонентов, либо именами правил, и вы хотите экспортировать только правила, код будет похож на следующий.
#!/usr/bin/bash
# Список элементов для экспорта, который может включать имена компонентов
имена=(имя1 имя2 имя3)
# Получить список только имен правил и преобразовать его в массив.
rules=( $(drush rules-list --pipe --type=rule)) )
# Создать массив с элементами, которые есть в обоих массивах.
exports=( $(comm -12 <(printf '%s\n' "${names[@]}" | LC_ALL=C sort) <(printf '%s\n' "${rules[@]}" |LC_ALL=С сортировка))
# Экспортировать элементы, имена которых находятся в массиве exports, который содержит только имена правил.
для экспорта в "${exports[@]}"; делать
drush rules-export "$export" > "${export}.txt"
сделано