Just a quick note in /bin/sh. It doesn't always point to the same underlying binary.

/bin/sh can point to any other shell

/bin/sh is often a symlink to /bin/bash. But on newer Ubuntu /bin/sh refers to /bin/dash. My laptop, which runs Arch Linux, has /bin/sh pointed to /bin/bash. And Debian also has /bin/sh pointed to /bin/bash.

Following this, I find it useful to use only one shell in a given codebase. bash is widely used and recommended in Google's shell style guide, so it can be a good default.