Powłoka Bourne’a
![]() | Ten artykuł od 2021-03 wymaga zweryfikowania podanych informacji. Należy podać wiarygodne źródła w formie przypisów bibliograficznych. Część lub nawet wszystkie informacje w artykule mogą być nieprawdziwe. Jako pozbawione źródeł mogą zostać zakwestionowane i usunięte. Sprawdź w źródłach: Encyklopedia PWN • Google Books • Google Scholar • Federacja Bibliotek Cyfrowych • BazHum • BazTech • RCIN • Internet Archive (texts / inlibrary) Dokładniejsze informacje o tym, co należy poprawić, być może znajdują się w dyskusji tego artykułu. Po wyeliminowaniu niedoskonałości należy usunąć szablon {{Dopracować}} z tego artykułu. |
Powłoka Bourne’a lub sh – historyczna powłoka systemu Unix.
Historia
Stephen Bourne rozpoczął prace nad powłoką pod koniec 1975 roku w Bell Labs w czasie, gdy Ken Thompson przebywał na rocznym urlopie na Uniwersytecie w Berkeley[1]. Powłoka była rozwinięciem wcześniejszego interpretera poleceń o nazwie shell. Jej pierwsze wydanie miało miejsce w 1977 roku w ramach Unix Version 7, dla którego była domyślną powłoką – zastępując wspomnianą powłokę autorstwa Kena Thompsona.
Na większości systemów Unix oraz pokrewnych oryginalna ścieżka /bin/sh
wskazuje na plik wykonywalny powłoki zgodnej z nią składniowo, np. ash czy mksh[a].
Język
sh ustanowi także początkowo nieformalny – za sprawą popularyzacji przez książkę The Unix Programming Environment Briana Kernighana i Roba Pike’a – a potem ustandaryzowany przez POSIX język skryptowy.
Składnia struktur kontrolnych została zainspirowana dialektem języka ALGOL 68, nad którym Bourne pracował na Uniwersytecie Cambridge. Wywodzą się z niego postacie if ~ then ~ elif ~ then ~ else ~ fi, case ~ in ~ esac z jedynym odstępstwem w postaci zamiany od na done, jako słowa kończącego pętle for/while[1].
Przykład kodu:
#!/bin/sh echo Hello World! echo Dzisiaj jest: date echo "wszystko OK?: " read odp if [ "$odp" != "n" ] then echo to fajnie else echo szkoda fi
Wynikiem tego programu jest:
Hello World! Dzisiaj jest: 10-10-2006 wszystko OK?: t to fajnie
Skrypt uruchamiało się podając interpreterowi jego ścieżkę: sh /tmp/przyklady/skrypt
. Skrypt można uruchomić bezpośrednio, jeśli nadano mu prawa wykonywania w systemie plików i znajduje się (jak w przykładzie powyżej) jako pierwsza linia #!/bin/sh
, która wywołuje ścieżkę powłoki mającej go wykonać.
Ograniczenia
Jednym z ograniczeń powłoki sh jest brak możliwości operowania na liczbach całkowitych bez tworzenia nowego procesu.
Zobacz też
- powłoka bash
- powłoka C (Csh)
- powłoka Korna (Ksh)
- powłoka Z (Zsh)
Uwagi
- ↑ Obecnie oryginalny Bourne shell jest już przestarzały [patrz: Ograniczenia] i nie jest wykorzystywany.
Przypisy
- ↑ a b Bourne 2015 ↓, s. 13–15.
Bibliografia
- Stephen R.S.R. Bourne Stephen R.S.R., Early days of Unix and design of sh [online], 12 czerwca 2015 [dostęp 2021-10-26] .
- p
- d
- e
1GL | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2GL/ Język drugiej generacji/ Asembler |
| ||||||||||||||
3GL / Język trzeciej generacji |
| ||||||||||||||
4GL/ Język czwartej generacji/ Język dziedzinowy |
| ||||||||||||||
5GL/Logiczne |
| ||||||||||||||
Ezoteryczne | |||||||||||||||
Inne |
|