Skip to content

Sourcing

Sourcing a file is different from execution, in that all commands are evaluated within the context of the current bash session - this means that any variables, function, or aliases defined will persist throughout your session.

Create the file you wish to source sourceme.sh

#!/bin/bash
export A="hello_world"
alias sayHi="echo Hi"
sayHello() {
echo Hello
}

From your session, source the file

Terminal window
$ source sourceme.sh

From hencefourth, you have all the resources of the sourced file available

Terminal window
$ echo $A
hello_world
$ sayHi
Hi
$ sayHello
Hello

Note that the command . is synonymous to source, such that you can simply use

Terminal window
$ . sourceme.sh

When developing several applications on one machine, it becomes useful to separate out dependencies into virtual environments.

With the use of virtualenv, these environments are sourced into your shell so that when you run a command, it comes from that virtual environment.

This is most commonly installed using pip.

Terminal window
pip install https://github.com/pypa/virtualenv/tarball/15.0.2

Create a new environment

Terminal window
virtualenv --python=python3.5 my_env

Activate the environment

Terminal window
source my_env/bin/activate