Running into an issue that is likely simple for people that know how. I am writing an .sh script that reads in a file that has variable names in it. I am trying to use the file following this with the values of the variables in place for the names in the file.
My Attempted .sh Script:
HELLOVAR = "hello"
cat infilename.json > outfilename.json
I then attempt to use outfilename.json, but it has not changed from the original infile.
File In Example:
I would like this to be ${HELLOVAR}.
File Out Wanted:
I would like this to be hello.
CodePudding user response:
You probably just want:
HELLOVAR=hello envsubst < infilename.json > outfilename.json
envsubst
reads its input stream looking for simple variable expressions (eg, it will substitute $FOO
and ${FOO}
, but will not perform the expected substitution on expressions like ${FOO-bar}
) and expands them according to the current setting in the environment. HELLOVAR=hello envsubst
invokes envsubst
with HELLOVAR set to hello
in its environment.