DEV Community

Cover image for One Bash Alias That Makes Life Easier
Andrew
Andrew

Posted on

One Bash Alias That Makes Life Easier

Getting Started

To set environment variables persistently, you normally have to add it to your .bashrc or .profile. However, this can be annoying, and often more trouble than it's worth. An alternative is writing a function in your .bashrc that appends to a global .env file, and sourcing that file in your .bashrc. I'll show the code and then break it down

setenv() {
  FILE=$HOME/.env
  if [[ ! -f "$FILE" ]]; then
    touch $FILE
    source $FILE
  fi
  echo $1=$2 >> $FILE
  export $1=$2
}

[ -f $HOME/.env ] && source $HOME/.env
Enter fullscreen mode Exit fullscreen mode

Code Breakdown

The first line of the function sets the file variable to a .env in the user's home directory. The if statement checks if the file doesn't exist, and if it doesn't, then it creates the file and sources it. The echo command appends to the .env file with the first and second arguments. The export command makes the environmental variable available right after running the command.

Finally, the last line sources the file, but only if it exists

Usage

You could then run something like this in your terminal (after reopening it)

setenv WORKING hopefully
Enter fullscreen mode Exit fullscreen mode

This is the general syntax for the command

setenv <key> <value>
Enter fullscreen mode Exit fullscreen mode

Note: If you refine a variable, like this,

setenv WORKING false
setenv WORKING true
Enter fullscreen mode Exit fullscreen mode

the file will include both of these, but the first will be unused.

Wrapping things up

I use many other aliases and functions, but this is one that I recently thought of, and it is very useful.

Thanks for reading 🎉

Top comments (0)