What is the best way to read a config file in bash?
For example, you have a script and aren't willing to fill in all the config manually each time you call the script.
Edit 1:
I think I didn't make it clear, so: what I want is… I have a configfile which is like
variable_name value
variable_name value ...
and I want to read that. I know I could just grep it for the arguments I'm looking for or so… but maybe there's a more intelligent way 🙂
Best Answer
As mbiber said,
source
another file. For example, your config file (saysome.config
) would be:And your script could look like:
The many files in
/etc/default
usually serve as configuration files for other shell scripts in a similar way. A very common example from posts here is/etc/default/grub
. This file is used to set configuration options for GRUB, sincegrub-mkconfig
is a shell script that sources it:If you really must process configuration of the form:
Then you could do something like:
(You could also do something like
eval "$var=$value"
, but that's riskier than sourcing a script. You could inadvertently break that more easily than a sourced file.)