Bourne Shell – sh

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)
  • bash
  • dash
  • ksh
  • ash (BusyBox)

Seul le shebang (la première ligne du script) indique quel shell est réellement utilisé.

Les contenus de définition restent publics. Les ressources (outils, grilles, supports) liées à cette fiche sont disponibles dans l’espace membre.