Я пытаюсь сделать что-то вроде этого (предполагая, что $ input - это что-то, предоставленное пользователем):
LIST = pre1 pre2 pre3 pre4 pre5 pre6 pre7 pre8 pre9 pre10
START = 0
for prefix in $(LIST); do \
if $(input) == $(prefix) then
START = 1
endif \
if $(START) == 1 then \
if [ -f $(prefix)<file_name> ]; then <do_A>; else <do_B>; fi
endif \
done
Моя проблема с двумя if, упомянутыми выше.я не знаю, как я могу выбрать конкретное строковое значение из списка при его итерации (если $ (input) == $ (prefix) затем), и я не знаю, как проверить, является ли значение 1 или 0 (если $ (START) == 1, то).
Я собираюсь использовать один и тот же make-файл для разных каталогов, имеющих одинаковое имя файла, но с другим префиксом.иногда каталог может содержать несколько версий файла с другим префиксом, и я хочу определить иерархию этих префиксов (определяется LIST в моем примере).когда пользователь предоставляет версию, идея состоит в том, чтобы начать поиск самой последней версии, начиная с версии, которую он предоставляет (например, если пользователь предоставляет pre4, то сначала мне нужно выполнить поиск pre4, и если она не существует - яя продолжу поиск pre5 и т. д., но в этом примере я не буду искать pre1, даже если он существует в текущем каталоге).
У каждого есть идея, как мне это сделатьчто?
Заранее спасибо.