Search
 
SCRIPT & CODE EXAMPLE
 
CODE EXAMPLE FOR SHELL

linux source env file

# The problem with source is that it requires the file to have a proper bash syntax, and some special characters will ruin it: =, ", ', <, >, and others. So in some cases you can just

source development.env

# But This version, however, withstands every special character in values:

set -a
source <(cat development.env | 
sed -e '/^#/d;/^s*$/d' -e "s/'/'''/g" -e "s/=(.*)/='1'/g")
set +a


  # Explanation:

  # -a means that every bash variable would become an environment variable
  # /^#/d removes comments (strings that start with #)
  # /^s*$/d removes empty strings, including whitespace
  # "s/'/'''/g" replaces every single quote with ''', which is a trick sequence in bash to produce a quote :)
  # "s/=(.*)/='1'/g" converts every a=b into a='b'
  # As a result, you are able to use special characters :)

To debug this code, replace source with cat and you'll see what this command produces.
Source by stackoverflow.com #
 
PREVIOUS NEXT
Tagged: #linux #source #env #file
ADD COMMENT
Topic
Name
3+1 =