Boston Linux & Unix (BLU) Home | Calendar | Mail Lists | List Archives | Desktop SIG | Hardware Hacking SIG
Wiki | Flickr | PicasaWeb | Video | Maps & Directions | Installfests | Keysignings
Linux Cafe | Meeting Notes | Blog | Linux Links | Bling | About BLU

BLU Discuss list archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Discuss] Bourne Shell variable assignment question

On Thu, Dec 15, 2011 at 3:57 PM, Jerry Feldman <gaf at> wrote:
> I have not done my homework on this as much as I should.
> A coworker needs to set variable names and values input from another
> file. Normally, I would source that file, but he specifically wants to
> parse the file.
> So, in simple terms, he has a file that has something like:
> var1=foo
> Instead of sourcing he wants to parse the file using readline so he
> reads the variable name, then he wants to assign a variable of the same
> name.
> So, in his code he has something like
> readline
> ... - code to parse the line
> Where varname contains the variable name(eg var1), and value contains
> the value(eg foo)
> --
> Jerry Feldman <gaf at>
> Boston Linux and Unix
> PGP key id:3BC1EB90
> PGP Key fingerprint: 49E2 C52A FC5A A31F 8D66 ?C0AF 7CEA 30FC 3BC1 EB90

Here's a reasonable method, snipped from some
scripts I wrote a while back.   Hope it helps...


    case "$1" in
	ip_addr=*)	ip_addr="${1#*=}";;
	netmask=*)	netmask="${1#*=}";;
	dns_srv1=*)	dns_srv1="${1#*=}";;
	dns_srv2=*)	dns_srv2="${1#*=}";;
	dns_dom=*)	dns_dom="${1#*=}";;
	*)		echo $USAGE >&2; exit 1;;

  echo "ip_addr=$ip_addr"
  echo "netmask=$netmask"
  echo "dns_srv1=$dns_srv1"
  echo "dns_srv2=$dns_srv2"
  echo "dns_dom=$dns_dom"

while read line
  parse_config "$line"
done < "$config_file"

# Here is some test output, given the input:
$ config_file=/tmp/fubar bash /tmp/parse.ksh

BLU is a member of BostonUserGroups
BLU is a member of BostonUserGroups
We also thank MIT for the use of their facilities.

Valid HTML 4.01! Valid CSS!

Boston Linux & Unix /