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
