anchor.diff:  
   To add the environment to your build output execute `env` at the start of your build script.
   
  -```
  +```bash
   #!/bin/bash
   
   env
  
positive.code: ## Configuring Bash
  
  The shell that runs your scripts in Buildkite is a clean bash prompt with no settings. If you rely on anything from your bashprofile or bashrc files when you run scripts locally, you'll need to explicitly add the relevant items to your build scripts.   
  There are four Bash options which are often used in build scripts:
  
  <table>
    <tbody>
    <tr>
      <th><code>-e</code></th>
      <td>Exit immediately if a command exits with a non-zero status</td>
    </tr>
    <tr>
      <th><code>-u</code></th>
      <td>Exit immediately if an undefined variable is used (e.g. <code>echo "$UNDEFINED_ENV_VAR"</code>)</td>
    </tr>
    <tr>
      <th><code>-o pipefail</code></th>
      <td>Ensures pipelines (e.g. <code>cmd | othercmd</code>) return a non-zero status if a command fails</td>
    </tr>
    <tr>
      <th><code>-x</code></th>
      <td>Print each expanded command before executing (useful for debugging)</td>
    </tr>
    </tbody>
  </table>
  
  In the majority of cases, you will want to ensure that if any one command fails your entire build script fails. You can set up your script to do this automatically by using the `-e` and `-o pipefail` options. For example:
  
  
negative.code: 
  To check your shell scripts for common errors and mistakes you can use a linting tool like [Shellcheck](http://www.shellcheck.net). [Shellcheck](http://www.shellcheck.net) is a shell script linter with a web-based front-end and a command line tool. It can also be used directly in your code editor.
  
  For an explanation of a shell code snippet, the [explainshell.com](http://explainshell.com) tool is extremely useful. [Explainshell]](https://github.com/idank/explainshell)) can tell you, in plain English, what a line of code does. It also integrates the man pages of common tools such as `ssh` and `git`.
  
  