Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Reading a config file from a shell script

Tags:

shell

config

I am looking for a shell script analog to something like Pythons's ConfigParser or Perl's Config::INI. I have sourced files in the past to accomplish this, but I'd prefer to read rather than execute my "config file". Does anyone know of anything comparable to the above modules available for shell (or bash) scripts?

Thanks, Jerry

like image 519
zenzic Avatar asked May 12 '11 19:05

zenzic


1 Answers

You don't want source it, so you should:

1.read the config, 2.verify lines 3.eval them

CONFIGFILE="/path/to/config"
echo "=$ADMIN= =$TODO= =$FILE=" #these variables are not defined here
eval $(sed '/:/!d;/^ *#/d;s/:/ /;' < "$CONFIGFILE" | while read -r key val
do
    #verify here
    #...
    str="$key='$val'"
    echo "$str"
done)
echo =$ADMIN= =$TODO= =$FILE= #here are defined

sample of config file

ADMIN: root
TODO: delete

var=badly_formtatted_line_without_colon

#comment
FILE: /path/to/file

if you run the above sample should get (not tested):

== == ==
=root= =delete= =/path/to/file=

sure this is not the best solution - maybe someone post a nicer one.

like image 187
jm666 Avatar answered Sep 16 '22 19:09

jm666