mirror of
https://github.com/albfan/bash-ini-parser.git
synced 2025-06-11 08:41:36 +03:00
5bae5fa6eb92cbcea75942d4ce4bb7185c65cbfa
bash-ini-parser
A ini file parser for bash relying only on builtins
Usage
You must copy bash-ini-parser on your project and source it:
$ source bash-ini-parser
or
$ . bash-ini-parser
Then, gived a properties file (file.ini):
[section]
key = value
key2 = value2
Issuing:
$ cfg_parser file.ini
Will declare functions per ini section called cfg.section.
$ cfg.section.<section>
$ echo $key
value
$ echo $key2
value2
Example
Goto scripts directory and launch example.sh
$ cd scripts
$ ./example.sh
Inspect its code, reuse on your scripts
Checking a ini file
If you want to test your existing ini file use getkeyfromsection.sh
$ getkeyfromsection.sh <file.ini> sectionname keyname
e.g.:
See file.ini, it is a file with different indentations, and comments
Issuing:
$ ./testfile.sh file.ini sec1 var4
Outputs:
show parsed file.ini
[sec1]
var1="foo"
var2="hoge"
var3="fuga"
var4="pivo"
[sec2]
var1="bar"
var2="foo"
var3="eco"
var4="piyo baz qux"
var5="foo"
var6="hoge"
var4 value is "pivo"
Drawbacks
This is more a hack than a reliable parser, so keep in mind things like
- multiword value vars will be arrays so you must access it as
${var[*]}
- changing from section to section will not erase previous var declarations
For a trusted parser (but based on python) checkout crudini
Credits
This is just an enhacement from http://theoldschooldevops.com/2008/02/09/bash-ini-parser
Languages
Shell
97.4%
M4
1.6%
Makefile
1%