Le Bourne Shell, souvent appelé sh, est le premier shell Unix standardisé, créé en 1977 par Stephen Bourne.
Il a servi de base historique à la plupart des shells modernes.
Le Bourne Shell (/bin/sh) est longtemps resté le shell de référence d’Unix.
Aujourd’hui, il est souvent remplacé par Bash (Bourne-Again SHell) pour l’usage interactif, mais il conserve un rôle essentiel : la portabilité des scripts.
Un standard minimal et portable
Le shell sh correspond à un ensemble minimal de fonctionnalités standardisées (POSIX).
Il est conçu pour fonctionner sur tous les systèmes Unix et Linux, y compris les environnements contraints :
- routeurs
- systèmes embarqués
- conteneurs légers (BusyBox, Alpine…)
- serveurs minimalistes
C’est pourquoi un script commençant par :
#!/bin/sh
doit éviter les extensions spécifiques à Bash, afin de rester compatible partout.
À propos des fichiers .sh
Contrairement à une idée répandue :
un fichier .sh n’est pas forcément un script Bash
L’extension .sh est une simple convention de nommage, sans valeur technique.
Un fichier .sh peut être interprété par différents shells, par exemple :
sh(POSIX)bashdashkshash(BusyBox)
Seul le shebang (la première ligne du script) indique quel shell est réellement utilisé.