Ah, 'source' as in 'source' used with the shell... just figured they would label it as a command for the minimal GRUB shell, but doesn't appear they do (and maybe they don't list others as well). I'll try it soon, thanks again.
--Marc On Fri, Jul 17, 2015 at 11:16 PM, Marc Smith <[email protected]> wrote: > Joāo Ricardo Sares Teles de Matos: Thank you for the idea, but using an > already generated grub.cfg file is a requirement (using grub-mkconfig isn't > an option). > > > On Fri, Jul 17, 2015 at 6:11 PM, Jordan Uggla <[email protected]> > wrote: > > On Fri, Jul 17, 2015 at 7:12 AM, Marc Smith <[email protected]> wrote: >> > Hi, >> > >> > Looking for any possibility of reading the contents of a file (or even >> just >> > the file name) into a variable in a GRUB config file? I've read that >> command >> > substitution is not supported and no plans to add it, but is there any >> other >> > way? >> > >> > I've tried a couple other methods without success (in the grub.cfg >> file): >> > --snip-- >> > while read ver_str; >> > do >> > something_with ${ver_str} >> > done < /version_file >> > --snip-- >> > >> > OR >> > >> > --snip-- >> > cat /version_file | while read ver_string; >> > do >> > something_with ${ver_str} >> > done >> > --snip-- >> >> To get the version number from a file named "version_*", where the '*' >> is actually the version string, you could do something like this: >> >> insmod regexp >> filename=/directory/containing/file/version_* >> >> # Now we can, if we want to, extract just the version string >> regexp --set=version_string '/directory/containing/file/version_(.*)' >> "$filename" >> >> # Now $version_string contains just the version string. >> >> Please note that I'm not in a position to actually test the above >> code, so it likely contains mistakes. >> > > Thanks Jordan, I'll give it a shot. > > > >> >> > >> > The goal is to read a "version string" from a file at boot with GRUB to >> > display different menu entries for different versions, but I'd even take >> > just getting the string from the file name at this point. Any ideas? My >> last >> > resort is to just use sed to modify grub.cfg when a new version of the >> OS is >> > installed (for a new GRUB menu entry), but I'd prefer not to do that >> unless >> > I have to. >> > >> > Or what about including another grub.cfg file and then in the included >> GRUB >> > config file just have the line "set ver_str=0.1.1" -- I was thinking >> using >> > the 'configfile' command would do this, but doesn't seem to work as I >> > expected. >> >> That method would also work fine, you just need to use "source" rather >> than configfile. The configfile command is used to load a file which >> will populate an entirely new grub menu whereas source in grub, much >> like in bash, executes commands in the current context. >> > > Okay, I'd prefer this method and I'll try it, but I don't see it in the > GRUB documentation: http://www.gnu.org/software/grub/manual/grub.html > > Is that part of GRUB 2.00 or is it a feature in a newer version, or am I > just missing? > > > --Marc > > > >> >> -- >> Jordan Uggla (Jordan_U on irc.freenode.net) >> > >
_______________________________________________ Help-grub mailing list [email protected] https://lists.gnu.org/mailman/listinfo/help-grub
