The shebang is #! followed by an interpreter's path, and it tells the kernel which program runs the script. It must be the very first line of the file. With #!/bin/bash there, running ./deploy.sh makes the kernel run /bin/bash ./deploy.sh.
Each line below is a separate choice, and a script uses only one.
#!/bin/bash
#!/usr/bin/env bash
#!/bin/zsh
#!/usr/bin/env python3
#!/usr/bin/env bash runs the first bash on PATH, which is more portable than a fixed path. The other two lines choose zsh by a fixed path and python3 through env. Without a shebang, the calling shell runs the file itself, which breaks when the script needs a different shell.
Keep comments off the shebang line. Linux passes everything after the interpreter as one argument, so #!/usr/bin/env bash # comment fails to start.
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.
Why there's no diagram: “”
The interactive diagram is below the answer - jump to diagram ↓ · Below it, the related concept . Jump to it ↓
The diagram below the answer is the concept . Jump to it ↓