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 syntax (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), integers, 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.