bash help setting variables

rgheck rgheck at comcast.net
Sat Oct 17 22:30:11 UTC 2009


On 10/17/2009 02:58 PM, Donald Russell wrote:
> I'm trying to write a bash script which makes an inquiry to an http
> service that replies with a series of keyword=value plain text data,
> one pair per line.
> I want to extract only a few of the lines, and make variables of them
> available to rest of my bash script.
>
> I have this so far, and it works fine in terms of selecting the
> correct data items... but how can I get them into $1 $2, or other
> symbolic names?
>
>
You can use bash variable matching. I'll suppose we know that $data is 
something like:
     key1=value1 key2=value2 key3=value3
where the pairs are separated by whitespace of some kind. If not, then 
set IFS and make sure the pairs are separated by that.

Then:
     for pair in $data; do
         key=${pair%%=*};
         val=${pair#*=};
         ...now do something with $key and $val...
     done
It'll be more complicated if there's whitespace in the values, but you 
get the idea.

See: http://www.linuxjournal.com/article/8919.

Richard




More information about the fedora-list mailing list