On Thu, 2011-12-15 at 16:35 -0500, Jerry Feldman wrote: > On 12/15/2011 04:27 PM, Richard Pieri wrote: > > On 12/15/2011 4:25 PM, Peter Doherty wrote: > >> Of course, one has to ask why your co-worker is doing this, and not > >> just sourcing the file. > >> Also, my example will break if you have an equal sign in your > >> variable name or value name. > > > > This. Sourcing the file is going to be the fastest and most reliable > > way to do it. > > > This is 100% agreed. The issue is that he does not want to source the > file and I have not been able to talk him out of it. In the past I have > written scripts where you could read the name of a variable, and then > convert it to a variable name, but I don't think I've done it in Bourne > of BASH.
There are lots of options: #!/bin/sh # equivalent to sourcing the file while read LINE do eval "$LINE" done <datafile #!/bin/bash # same as above, bash/ksh only for LINE in $(<datafile) do eval "$LINE" done #!/bin/sh # similar, but rejects lines that are not NAME=VALUE or have spaces # also exports all variables processed egrep "^[^= ]+=[^= ]+$" datafile|while read LINE do eval "export $LINE" done You could easily parse out the name and value separately, but there's no reason to, because you're going to end up putting them on either side of an equal sign in an eval anyways. -Chris _______________________________________________ Discuss mailing list Discuss@blu.org http://lists.blu.org/mailman/listinfo/discuss