Opracowany przez | Stephen Bourne |
---|---|
Pierwsza wersja | 1977 |
System operacyjny | Unix |
Środowisko | Unix |
Języki | język angielski |
Rodzaj |
Narzędzie Shell Unix UNIX ( d ) Język programowania Język wiersza poleceń ( d ) |
Bourne shell lub BSH (lub po prostu sh w wielu wersjach UNIX ) jest Unix shell . To jest domyślna powłoka systemu Unix w wersji 7 ; we wcześniejszych wersjach systemu UNIX nazwa sh odnosi się do powłoki Thompsona , aw niektórych aktualnych wersjach do powłoki Korna .
Powłoka Bourne'a została zaprogramowana przez Stephena Bourne'a (stąd nazwa) z AT&T Bell Laboratories i po raz pierwszy pojawiła się w 1977 roku w wersji 7 systemu Unix, która została rozprowadzona na uniwersytety i akademie. Od tamtej pory pozostaje domyślną powłoką dla kont Unix. Plik wykonywalny powłoki Bourne'a lub innej kompatybilnej powłoki znajduje się w lokalizacji /bin/shw większości systemów uniksowych i nadal jest domyślną powłoką dla konta root w wielu implementacjach Uniksa.
Dzięki systemowi lamp łączących wyjście jednego polecenia z wejściem drugiego, pozwala na pisanie złożonych skryptów z prostych poleceń. Ulepszoną wersją tej powłoki jest powłoka Bourne-Again .
Przy projektowaniu powłoki Bourne'a postawiono sobie następujące cele:
The Bourne shell był pierwszym wdrożyć deskryptora pliku konwencję 2>zajęcia się przepływ z komunikatem o błędzie , zapewniając tym samym skryptów z mechanizmu dynamicznej obsługi wyjątków .
Stephen Bourne zaimportował do swojej powłoki niektóre aspekty kompilatora Algol 68 C (nad którym pracował na Uniwersytecie Cambridge ) . Są to w szczególności ponowne zastosowania fragmentów kompilatora Algol 68 : klauzule „ ”, „ ” i „ ” (z zamiast ) dla wspólnej składni powłoki Bourne'a w Uniksie . Ponadto (i chociaż wersja 7 powłoki jest napisana w języku C ), Bourne użył kilku makr, aby jego kod źródłowy wyglądał jak „Algol 68”. Makra te (wraz z poleceniem palca, który pojawił się wraz z 4,2 BSD wersji Uniksa ) zainspirowały IOCCC - Międzynarodowy ukrywane C Code Contest . if ~ then ~ elif ~ else ~ ficase ~ in ~ esacfor ~ while ~ do ~ oddoneod