Shell programming comes in two flavors: shell scripts and shell functions. Shell scripts, once defined, can be executed just like any other executable. Shell functions are similar to shell scripts but are defined in the environment. This simply means that they load much faster than shell scripts and can change the current environment.