Bourne shell

Bourne shell (Bourne-komentotulkki, sh) on Stephen Bournen kehittämä komentotulkki UNIX-käyttöjärjestelmälle. 
Bourne on kehittänyt komentotulkin Bell Labsissa.

Unix-käyttöjärjestelmän alkuperäisen sh-komentotulkin oli kehittänyt Ken Thompson. Thompsonin tulkki oli yksinkertainen mutta liian rajoittunut kun käyttöjärjestelmää käytettiin sovelluskehitykseen. Useat ihmiset toivoivat komentotulkilta ohjelmointiominaisuuksia kuten muuttujia ja vuonohjausta. Pääongelmana oli suunnitella komentotulkki täysin ohjelmoitavalle komentokielelle. Tulkin piti myös tukea olemassa olevaa interaktiivista käyttöä, jossa tulkki käsittelee ja suorittaa käyttäjien syöttämiä komentoja. Bourne lisäsi tulkkiin if ja for -lauseet ja eliminoi goto-lauseen. Tulkin komentokieli käyttää ALGOLin kaltaista syntaksia.

Bell Labsissa oli kehitetty samaan aikaan myös muita komentotulkkeja samoihin ongelmiin. Bourne käytti aikaa komentotulkin suorituskyvyn parantamiseen ja vähitellen vakuutti vaihtamaan siihen. Suorituskykyä rajoittava tekijä oli Unixin fork ja exec järjestelmäkutsujen nopeus komentoa suorittaessa, joka oli hitaampaa kuin C-kielisen funktion kutsu. Viimeinen Bournen lisäämä muutos oli tuki funktioille vuonna 1983, jonka jälkeen hän päätti tulkin saavuttaneen suunnittelurajat eivätkä jatkomuutoksien kanssa enää voisi säilyttää johdonmukaisuutta ja yksinkertaisuutta. Myöhemmin tulkista tehtiin POSIX-yhteensopiva.

GNU-projekti on toteuttanut osittain yhteensopivan Bash-komentotulkin, jossa on myös ominaisuuksia muista komentotulkeista.

Lähteet

Aiheesta muualla 
 List of Bourne shell built-in commands 

Unix-ohjelmat
Komentotulkit
Bell Labs