name mode size
test 040000
.gitignore 100644 6B
.travis.yml 100644 182B
LICENSE-BSD 100644 1.69kB 100644 2.73kB
TODO 100644 92B 100755 9.02kB
bash_ini_parser =============== This is a comfortable and simple INI file parser to be used in bash scripts. COPYRIGHT --------- Copyright (c) 2009 Kevin Porter / Advanced Web Construction Ltd ( / Copyright (c) 2010-2014 Ruediger Meier <> ( License: BSD-3-Clause, see LICENSE file USAGE ----- You must source the bash file into your script: $ . and then use the read_ini function, defined as: $ read_ini INI_FILE [SECTION] [[--prefix|-p] PREFIX] [[--booleans|b] [0|1]] If SECTION is supplied, then only the specified section of the file will be processed. After running the read_ini function, variables corresponding to the ini file entries will be available to you. Naming convention for variable names is: **PREFIX__SECTION__VARNAME** **PREFIX** is 'INI' by default (but can be changed with the --prefix option), **SECTION** and **VARNAME** are the section name and variable name respectively. Additionally you can get a list of all these variable names: **PREFIX__ALL_VARS** and get a list of sections: **PREFIX__ALL_SECTIONS** and the number of sections: **PREFIX__NUMSECTIONS** For example, to read and output the variables of this ini file: test1.ini file var1="VAR 1" var2 = VAR 2 [section1] var1="section1 VAR 1" var2= section1 VAR 2 you could do this: bash script example . read_ini test1.ini echo "var1 = ${INI__var1}" echo "var2 = ${INI__var2}" echo "section1 var1 = ${INI__section1__var1}" echo "section1 var2 = ${INI__section1__var2}" echo "list of all ini vars: ${INI__ALL_VARS}" echo "number of sections: ${INI__NUMSECTIONS}" OPTIONS ------- [--prefix | -p] PREFIX String to prepend to generated variable names (automatically followed by '__'). Default: INI [--booleans | -b] [0|1] Whether to interpret special unquoted string values 'yes', 'no', 'true', 'false', 'on', 'off' as booleans. Default: 1 INI FILE FORMAT --------------- - Variables are stored as name/value pairs, eg: var=value - Leading and trailing whitespace of the name and the value is discarded. - Use double or single quotes to get whitespace in the values - Section names in square brackets, eg: [section1] var1 = value - Variable names can be re-used between sections (or out of section), eg: var1=value [section1] var1=value [section3] var1=value - Dots are converted to underscores in all variable names. - Special boolean values: - unquoted strings 'yes', 'true' and 'on' are interpreted as 1 - 'no', 'false' and 'off' are interpreted as 0