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

Reply via email to