[U-Boot] using ${var} with env import

Wolfgang Denk
2011-03-30T12:57:57Z

Dear Holger Brunck,

In message <4D92E7B4.9010305@keymile.com> you wrote:
>
> I am using env import -t to import environment variables from a textfile.
>
> My simple textfile is:
> fdt_file=${hostname}/${hostname}.dtb
>
> I import the file with:
> => tftp 200000 scripts/my_environ.txt
> => env import -t 200000 ${filesize}
>
> Now when I print the variable I get:
> => print fdt_file
> fdt_file=${hostname}/${hostname}.dtb
>
> hostname is defined as:
> => print hostname
> hostname=mgcoge

This is perfectly normal. "env export" and "env import" are inverse
operations - they export and import the environment data directly,
without any conversions (except for the formatting as text lines
versus NUL-terminated strings). Neither of these functions performs
any variable substitutions - these are done in the command
interpreter, i. e. when you run a command in the shell.

> Is the usage of ${var} in the textfiles not possible? Or is there a way to solve
> this problem?

I understand that with "usage of ${var}" you mean variable subsitution
- this is indeed not supposed to happen during an "env import".

I don't consider this a problem, though. If you want such
substituion, use the defined strings in shell commands.

Actually I consider it more clever to _keep_ the ${hostname} stuff in
your variable definitions, as then it is sufficient to change the
"hostname" variable to take affect everywhere; if you subsitute the
value hard in other variables, you would have to fix all of these (and
provide code to do so).

So actually I think this is not a problem, it just points out some
inefficient usage of the environment in your setup.

> I try to use this textfile for different boards and can therfore not specify
> hostname in advance in the textfile.

You don't have to. It does not matter when it gets defined (as long as
the variables referencing it are not needed before that).

Best regards,

Wolfgang Denk

--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Genitiv ins Wasser, weil's Dativ ist!