My bash script needs to read the variables from a text file that contains hundreds of variables, most of which conform to standard bash variable sytax (e.g.,
VAR1=VALUE1). However, a few lines in this file can be problematic and I hope to find a simple solution to reading them into bash.
Here's what the file looks like:
#comment VAR1=VALUE1 VAR_2=VALUE_2 ... VAR5=VALUE 5 (ASDF) VAR6=VALUE 6 #a comment VAR7=/path/with/slashes/and,commas VAR8=2.1 VAR9=a name with spaces VAR_10=true ... VAR_N=VALUE_N
The rules about the file structure include :
- one variable (with value) per line
- the assignment (=) has no spaces around it
- the variable name is in the first column (unless it is a comment line)
- comments can follow the value (after #)
- the values can include spaces, parens, slashes, commas and other chars
- the values can be floating point numbers (2.1) or integers or true/false or strings.
- string values are not quoted, and they can be a thousand chars long or longer
- the variable name contains only letters and underscores UPDATE: and numbers.
Most of the variables are of a type that would just allow me to source the file into my bash script. But those few problematic ones dictate a different solution. I'm not sure how to read them.