# Debugging Bash scripts
Using the `-x` flag will force Bash to output each line of the shell script you're running before that line is executed. This can be useful for debugging.
```bash
bash -x ./script.sh
```
The `-x` flag can also be incorporated into the interpreter line.
```bash
#!/usr/bin/env bash -x
# Script content...
```
Finally, this mode can be toggled on and off with the `set` command within the script itself.
```bash
#!/usr/bin/env bash
# Some script content...
set -x
# These lines will be echoed before execution.
set +x
# These lines will not be echoed...
```
Frequently `set -x` is used at the start of a script without a closing `set +x`, which will just cause all lines of the script to be echoed back before execution.