Exactly: GNU bash is on most GNU/Linux systems, but:
* mac OS uses an ancient version of bash
* Embedded systems use busybox sh
* Android uses its own version of sh
* None of the BSDs come with bash, since, y'know GNU licensing
EDIT: Formatting
* mac OS uses an ancient version of bash
* Embedded systems use busybox sh
* Android uses its own version of sh
* None of the BSDs come with bash, since, y'know GNU licensing
EDIT: Formatting
This comes from more armature script authors not being precise enough with requirements, or not targeting the more common and portable spec.
The shebang line #!/bin/sh should only be used for POSIX-compliant scripts; if it needs {bash, dash, python, etc.} it should start #!/usr/bin/env {bash, dash, python, etc.}.