3

I would like to be able to create some files in a directory (e.g. *.env) and then have my ZSH / BASY automatically load the environment variables defined in them / unload when I change the directory.

It would be best if a file ~/project/local.env would define environment variables for all of its (nested) subfolders.

It should be gratis and work on Ubuntu 18.04.

  • Which software are you asking us to recommend? This sounds more like a question for unix.stackexchange.com – Mawg Nov 9 '18 at 10:52
  • If I knew the name of the software I want, why would I go to this site? – Martin Thoma Nov 9 '18 at 11:04
  • Lol! Sorry (and I intended no offence), It's not about the name of some app. It's that, when I read your question (and maybe it is just me), you don't seem to be asking "what software app can do this for me". It reads more like "how can I do this from the command line, or with a .bashrc file, or similar?". If I were you, I would prefer to do it with existing Linux commands if possible, rather than add a new software. If you agree, delete this question and ask on our Linux site. If they can't help, then come back here (but don't cross-post). Whichever you chose, I wish you good luck :-) – Mawg Nov 9 '18 at 11:12
  • 1
    I'm 99% certain that I cannot do it with the software I have installed. It might be only a ZSH plugin, but I need something else. – Martin Thoma Nov 9 '18 at 12:06
1

direnv is what I was looking for:

  • Install via sudo apt-get install direnv
  • In some target folder, create a .envrc file and add some export(1) directives in it.
  • the contents of the .envrc file must be valid bash syntax, regardless of the shell you are using
  • You have to enable it once per directory with direnv allow .
  • Thank you very much for sharing the answer with us. That will help others in future – Mawg Nov 20 '18 at 11:48

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.