# 4.10 Environment variables

Source: https://ravindrabagale.com/mr/aws/ch04-linux-advanced-commands/4-10-environment-variables.html
Language: mr (Marathi with English technical terms)

HOME, PATH, USER अशा values environment मधून programs ना मिळतात. App config code पासून वेगळी ठेवायला उपयोग होतो.

echo $HOME $USER $PATH $SHELL
env | sort                     # all environment variables
export APP_ENV=production      # set for this session and child processes
echo $APP_ENV
unset APP_ENV
echo 'export PATH=$PATH:$HOME/bin' >> ~/.bashrc   # make permanent for your user
source ~/.bashrc               # reload without logging out

export केलेली value सध्याच्या shell आणि त्यातून सुरू होणाऱ्या child processes ना मिळते. unset ती काढतो. Bash interactive shell साठी ~/.bashrc मध्ये आवश्यक setting ठेवून source करा. Services साठी वेगळी environment configuration लागते; .bashrc आपोआप वाचला जाईल असं समजू नका.

Secrets code मध्ये नको

Database password GitHub मध्ये जाणाऱ्या code मध्ये hard-code करू नका. योग्य protected environment किंवा .env file वापरताना permission 600 आणि access control ठेवा; production मध्ये secret manager चा विचार करा. env output मध्ये secrets असू शकतात; ते share करू नका.

Lab

export SHOP=mauli-dairy, echo $SHOP. स्वतंत्र नवीन terminal मध्ये value आहे का पाहा. मग echo 'export SHOP=mauli-dairy' >> ~/.bashrc आणि source ~/.bashrc; नवीन Bash terminal मध्ये तपासा.

रवींद्र बागले यांची tip

export कायमचा नसतो. Assignment मध्ये NAME="Asha" असं लिहा; = च्या भोवती spaces नकोत. कोणता shell file वाचतो हेही तपासा.
