Accueil🇫🇷Chercher

Bourne shell

Le Bourne shell ou bsh (ou encore simplement sh dans de nombreuses versions d'UNIX) est un shell Unix. C'est le shell par défaut de la version 7 d'Unix ; dans les versions antérieures d'UNIX, le nom sh désigne le Thompson shell, et dans certaines versions actuelles, il désigne le Korn shell.

Bourne shell

Description de l'image Version 7 UNIX SIMH PDP11 Kernels Shell.png.
Informations
Développé par Stephen Bourne
Première version
Système d'exploitation Unix
Environnement Unix
Langues anglais
Type Shell Unix
Utilitaire UNIX (d)
Langage de programmation
Langage en ligne de commande (d)

Le Bourne shell a été programmé par Stephen Bourne (d'où le nom) d'AT&T Bell Laboratories et a fait son apparition pour la première fois en 1977 sur la version 7 d'Unix qui était distribuée aux universités et académies. Il est resté depuis cette époque le shell par défaut pour les comptes Unix. Le fichier exécutable du Bourne shell ou de tout autre shell compatible se trouve à l'emplacement /bin/sh sur la plupart des systèmes Unix et est toujours le shell par défaut du compte root sur de nombreuses implémentations d'Unix.

Avec son système de tubes connectant la sortie d'une commande à l'entrée d'une autre, il permet d'écrire des scripts complexes à partir de commandes simples. Une version améliorée de ce shell est le Bourne-Again shell.

Principes généraux

Les buts poursuivis dans la conception du Bourne shell Ă©taient[1] :

  • de pouvoir utiliser des shell scripts comme filtres,
  • des possibilitĂ©s de programmation, y compris avec structures de contrĂ´le et variables,
  • d'avoir le contrĂ´le sur tous les descripteurs de fichiers en lecture/Ă©criture,
  • d'avoir le contrĂ´le sur signaux dans l'exĂ©cution des scripts,
  • de s'affranchir des limites sur la longueur des chaĂ®nes dans l'interprĂ©tation des shell scripts,
  • de rationaliser et gĂ©nĂ©raliser les mĂ©canismes d'adressage des chaĂ®nes de caractère (string quoting),
  • de disposer d'un mĂ©canisme d’environnement, afin de rĂ©cupĂ©rer le contexte au dĂ©marrage du script, et de pouvoir le transmettre aux process-fils sans avoir Ă  recourir Ă  des chemins explicites.

Caractéristiques de la version originale

Le Bourne shell a été le premier à mettre en œuvre la convention de descripteur de fichier 2> pour adresser le flux du message d'erreur, dotant ainsi les scripts d'un mécanisme de gestion dynamique des exceptions.

Stephen Bourne a importé certains aspects du compilateur Algol 68C (sur lequel il avait travaillé à l'Université de Cambridge) dans son shell. Ce sont notamment des réemplois de portions du compilateur Algol 68 : "if ~ then ~ elif ~ else ~ fi", "case ~ in ~ esac" et les clauses "for ~ while ~ do ~ od" (avec done au lieu de od) pour la syntaxe commune du Bourne shell Unix. En outre (et bien que la version 7 du shell soit écrite en langage C), Bourne a utilisé quelques macros[2] pour donner à son code source un rendu « Algol 68 ». Ces macros (avec la commande finger apparue avec la version BSD 4.2 d'Unix) ont inspiré l’IOCCC – International Obfuscated C Code Contest[3].

Notes et références

  1. D'après Howard Dahdah (Techworld Australia), « The A-Z of Programming Languages: Bourne shell, or sh », Computerworld, no 5 mars,‎ (lire en ligne)
  2. Steve Bourne, « mac.h – Macros de S. Bourne pour structurer C au format « pseudo-Algol68 » », sur AT&T, (consulté le )
  3. Landon Curt Noll, Simon Cooper, Peter Seebach et Leonid A. Broukhis, « The IOCCC FAQ – Q/A: How did the IOCCC get started? », sur www.ioccc.org, (consulté le )

Voir aussi

Articles connexes

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.