I don't know shite about:
Store environment variables globally using fish-shell
Stop your env vars from disappearing after you close your shell
Sometimes I want to use environment variables but if I set them inside of one terminal window they are no longer available if open a new terminal tab. Especially if I like to run a command globally, without providing the environment variable again-and-again, I need to persist the env variable somehow.
In this example I'm using the fish-shell because it's my most used shell.
🪠 Making the environment variable sticky in fish
Usually you set a (volatile) local environment variable with in
set KEY VALUE.
Fish makes it quite easy to persist the environment variable over new shell instances.
All I need to do is run
set -U KEY VALUE which creates a "universal" environment variable instead of a local one.
Fish will store your universal variable in a file in
Be aware that these variables are stored in clear text. 👀
Did it work?
Now I can test if the variable is universally available by setting a new env var in one terminal window with
set -U MY_API_KEY 123A4h512.
Then I open another terminal window and run
echo $MY_API_KEY and I should see
123A4h512 printed to the screen.
In case you'd like to remove this environment variable at some point, just run:
set -eU KEY VALUE.
🤔 I'm wondering how to store environment variables in an encrypted storage. Maybe this will be the topic of a future post.