'Create .env file with shell script - how to wrap value in commas?
I am currently using the following to make a .env to help me with with my environment variables when using docker > supervisor > cron.
printenv > /var/www/laravel.env
This prints a list which is perfect (except issues with those with spaces in...)
I know that I can use sed to seperate them at the = sign and then wrap the second part in speech marks.
For example..
MY_VAR="MY VALUE WITH SPACES WORKS"
Solution 1:[1]
The output of printenv can't be used to reliably reconstruct the values of all possible environment variables. Consider this output:
foo=bar
baz=3
Is that the result of export foo=bar baz=3 or export foo=$'bar\nbaz=3'? There is no way to know.
In fact, I do not know of a portable way to reproduce any valid environment so that it can be reconstructed. The closest thing I can think of is in bash, you can use declare -px to produce output which can be used as the target of a source command to reproduce values whose names are valid identifiers.
Solution 2:[2]
This will work, unless the values contain also =
printenv |awk -F"=" '{print $1"=""\""$2"\""}'
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | chepner |
| Solution 2 | George Vasiliou |
