GRUB2 поддерживает написание функций и я этим активно пользуюсь. Свои функции я писал в отдельный конфиг и был счастлив.
В процессе роста файла возникло неудобство и желание разделить его на части: каждая функция в отдельный файл и список для импорта - на какое-то время этого хватило.
В конце концов меня достала необходмость править список импорта каждый раз и пришла идея импортировать все файлы из каталога.
Для этого я написал такой код (import_all.txt):
for core in (hd0,1)/my_functions/library/* ; do
source ${core}
# DBG MSG:
echo "sorce ${core}"
done
Я попробовал запускать source вручную и вот что заметил:
При первом запуске я вижу сообщение «source (hd0,1)/my_functions/library/*» и функции, естесственно, не импортируются.
При втором запуске я вижу реальную подгрузку всех функций, и они начинают работать.
Может кто-нибудь объяснить мне почему при первом выполнении for отрабатывает не корректно и как можно это поправить/обойти?
ОТВЕТ:
https://wiki.archlinux.org/index.php/GRUB_(Русский)#Arch_Linux_ISO
insmod regexp # для шаблонов * в именах файлов