anchor.diff:  run_my_tests
   ```
   
  -If you need to perform tasks after your main command executes then `set -e` might not be suitable, as any failure will cause the script to immediately exit and subsequent commands to be skipped. Instead of using `set -e` you’ll need to [capture the exit status](#capturing-exit-status) of your command yourself.
  -
  -## Debugging your environment
  -
  -The first step to debugging script is to output the environment. This will show any [environment variables set up by the Buildkite Agent](/docs/builds/environment-variables), as well as other important environment variables such as `$PATH`.
  -
  -To add the environment to your build output simply execute `env` at the start of your build script.
  -
  -```
  -#!/bin/bash
  -
  -env
  -```
  -
  -You can also set the `-x` option which will print out each command, fully expanded, before executing it.
  -
  -```
  -#!/bin/bash
  -
  -set -x
  -```
  +However, if you need to perform tasks after your main command executes (regardless of success or failure), you’ll need to [capture the exit status](#capturing-exit-status) of your command yourself instead of using `set -e`.
   
   ## Capturing Exit Status
   
  
positive.code: # Writing Build Scripts
  
  Steps in your build pipelines are most often just shell scripts that are checked in alongside your code. The [Buildkite Agent](/docs/agent) will run your scripts, capture and report the log output, and use the exit status to mark the build as passed or failed.
  
  <%= toc %>
  
  
negative.code:   </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:
  
  ```bash
  #!/bin/bash
  