Проверьте аргумент zsh-скрипта относительно шаблона в нескольких файлах и отслеживайте соответствующий шаблон для других задач.

Это расширенный вопрос о том, как проверить параметры скрипта zsh в шаблоне или нет

Хотя приведенная выше ссылка решила проблему, состоящую в том, что скрипт zsh проверяет свой первый аргумент в списке шаблонов в файле, разделенном символом новой строки. Я хотел бы расширить его как:

  1. Сверьтесь с шаблонами, которые в нескольких файлах в нескольких папках, которые, вероятно, в массиве папок.

  2. Следите за этим совпавшим шаблоном, чтобы выполнить другую задачу, т.е. вызвать .conf который настраивает что-то еще.

Пока я задаю этот вопрос, я все еще в многозадачном режиме и буду обновлять его позже, если у вас есть решение, я буду очень признателен.

 files=($^array_of_folders/**/*.pattern(.N)) # assuming pattern files # have a .pattern extension pattern="($(cat -- $files | paste -sd '|' -))" if [[ $1 = $~pattern ]]; then print -r -- "$1 matches $pattern" fi 

Хотя, если вы хотите узнать, какой из шаблонов соответствует, вам понадобится:

 files=($^array_of_folders/**/*.pattern(.N)) patterns=(${(f)"$(cat -- $files)"}) matching_patterns=() for pattern ($patterns) { [[ $1 = $~pattern ]] && matching_patterns+=$pattern } print -r -- "$1 matched by $#matching_patterns patterns: $matching_patterns"