Bourneova skořápka - Bourne shell
![]() Interakce Bourneova shellu zapnuta Verze 7 Unix | |
Původní autoři | Stephen Bourne |
---|---|
Vývojáři | Bell Telephone Laboratories |
První vydání | 1979 |
Operační systém | Unix |
Typ | Unix shell |
Licence | [pod diskuse] |
The Bourneova skořápka (sh
) je skořápka tlumočník příkazového řádku pro počítač operační systémy.
Shell Bourne byl výchozí skořápka pro Verze 7 Unix. Unixový systémy nadále mají / bin / sh
—Která bude skořápka Bourne, nebo symbolický odkaz nebo pevný odkaz do kompatibilního prostředí - i když většina uživatelů používá jiné prostředí.
Vyvinul Stephen Bourne na Bell Labs, byla to náhrada za Thompsonova skořápka, jehož spustitelný soubor měl stejný název -sh
. Byla vydána v roce 1979 ve verzi Unix verze 7 distribuované na vysoké školy a univerzity. I když se používá jako interaktivní tlumočník příkazů, bylo zamýšleno také jako skriptovací jazyk a obsahuje většinu funkcí, které se běžně považují za vytváření strukturovaných programů.
Získal popularitu vydáním Unixové programovací prostředí podle Brian Kernighan a Rob Pike —Prvá první komerčně publikovaná kniha, která prezentovala shell jako programovací jazyk ve výukové formě.
Dějiny

Počátky
Práce na skořápce Bourne byly původně zahájeny v roce 1976.[1] Nejprve se objeví v Verze 7 Unix,[2] skořápka Bourne nahradila Mashey shell.
Některé z hlavních cílů granátu byly:[3]
- Dovolit shell skripty použít jako filtry.
- Zajistit programovatelnost včetně regulační tok a proměnné.
- Ovládání všech vstupů / výstupů deskriptory souborů.
- Kontrola nad zpracování signálu ve skriptech.
- Při interpretaci shell skriptů nejsou omezeny délky řetězců.
- Racionalizujte a zobecněte mechanismus citování řetězců.
- The mechanismus prostředí. To umožnilo vytvořit kontext při spuštění a poskytl způsob, jak skripty prostředí předávat kontext dílčím skriptům (procesy ), aniž byste museli používat explicitní poziční parametry.
Vlastnosti původní verze
Mezi vlastnosti prostředí UNIX Bourne Shell verze 7 patří:
- Skripty lze vyvolat jako příkazy pomocí jejich názvu souboru
- Lze použít interaktivně nebo neinteraktivně
- Umožňuje synchronní i asynchronní provádění příkazů
- Podporuje přesměrování vstupu a výstupu a potrubí
- Poskytuje sadu předdefinovaných příkazů
- Poskytuje konstrukce řízení toku, nabídky a funkce.
- Typické proměnné
- Poskytuje místní a globální rozsah proměnných
- Skripty před spuštěním nevyžadují kompilaci
- Nemá goto zařízení, takže může být nutná restrukturalizace kódu
- Substituce příkazu použitím zpětné uvozovky:
`příkaz`
. - Zde dokumenty použitím
<<
pro vložení bloku vstupního textu do skriptu. pro ~ do ~ hotovo
smyčky, zejména použití$*
smyčka přes argumenty, stejně jakojiž hotové
smyčky pro iteraci seznamů.případ ~ in ~ esac
mechanismus výběru, jehož hlavním účelem je pomáhat analýza argumentů.sh
poskytla podporu proměnným prostředí pomocí parametrů klíčových slov a exportovatelných proměnných.- Obsahuje silná opatření pro řízení vstupu a výstupu a v něm shoda výrazu zařízení.
Bourneova skořápka byla také první, která obsahovala konvenci používání deskriptor souboru 2>
pro chybové zprávy, což umožňuje mnohem větší programovou kontrolu během skriptování tím, že chybové zprávy odděluje od dat.
Styl kódování Stephena Bournea byl ovlivněn jeho zkušenostmi s ALGOL 68C překladač[2] na kterém pracoval Cambridge University. Kromě stylu, ve kterém byl program napsán, Bourne znovu použil části ALGOL 68 je -li ~ pak ~ elif ~ pak ~ jiný ~ fi
, případ ~ v ~ esac
a pro/zatímco ~ dělat ~ od
" (použitím Hotovo
namísto od
) společné doložky Unix Syntaxe prostředí Bourne. Navíc - i když je shell v7 napsán C - Bourne některé využil makra[4] dát C. zdrojový kód příchuť ALGOL 68. Tato makra (spolu s prst příkaz distribuovaný ve verzi Unix 4,2BSD ) inspiroval Mezinárodní soutěž o zmatené kódy C. (IOCCC).[5]
Funkce zavedené po roce 1979
V průběhu let byla v AT&T vylepšena skořápka Bourne. Různé varianty se tedy nazývají jako příslušná verze AT&T Unix, s níž byla vydána (některé důležité varianty jsou Verze7, SystemIII, SVR2, SVR3, SVR4). Jelikož shell nebyl nikdy opatřen verzí, jediným způsobem, jak jej identifikovat, bylo testování jeho funkcí.[6]
Funkce verzí prostředí Bourne od roku 1979 zahrnují:[7]
- Vestavěný
test
příkaz - skořápka System III (1981) - # jako komentář - System III shell (1981)
- Dvojtečka v substitucích parametrů "$ {parametr: = word}" - prostředí System III (1981)
pokračovat
s argumentem - System III shell (1981)kočka << - EOF
pro zde odsazené dokumenty - System III shell (1981)- Funkce a
vrátit se
vestavěný - SVR2 shell (1984) - Integrované
zrušeno
,echo
,typ
- SVR2 shell (1984) - Zdrojový kód de-ALGOL68-ized - SVR2 shell (1984)
- Moderní "
$@
"- SVR3 shell (1986) - Vestavěný
getopts
- SVR3 shell (1986) - Vyčištěná manipulace s parametry umožňuje rekurzivně volané funkce - SVR3 shell (1986)
- 8-bit clean - SVR3 shell (1986)
- Řízení úloh - SVR4 shell (1989)
- Podpora více bytů - prostředí SVR4 (1989)
Varianty
DMERT shell
Duplexní více prostředí v reálném čase (DMERT ) je hybridní operační systém pro sdílení času / reálného času vyvinutý v 70. letech v lokaci Bell Labs Indian Hill v Naperville, Illinois používá snímek Bourne Shell z roku 1978 „VERSION sys137 DATE 1978 12. října 22:39:57“.[Citace je zapotřebí ] DMERT shell běží dál 3B21D počítače stále používané v telekomunikačním průmyslu.[Citace je zapotřebí ]
Korn skořápka
The Korn skořápka (ksh) napsal David Korn na základě původního zdrojového kódu Bourne Shell,[8] byla střední cesta mezi ulicí Bourne a C shell. Jeho syntaxe byla čerpána hlavně z Bournovy skořápky, zatímco její kontrola práce funkce připomínaly vlastnosti C shellu. Funkčnost původního Korn Shell (známého jako ksh88 od roku jeho zavedení) byla použita jako základ pro POSIX shell standard. Novější verze, ksh93, je open source od roku 2000 a na některých se používá Linuxové distribuce. Klon ksh88 známý jako pdksh je výchozí shell v OpenBSD.
Schily Bourne Shell
Nástroje Schily-Tools od Jörga Schillinga zahrnují tři deriváty Bourne Shell.[9]
Vztah k jiným granátům
C shell
Bill Joy, autor C shell, kritizoval shell Bourne jako nepřátelský pro interaktivní použití,[10] úkol, pro který Stephen Bourne sám uznal převahu C shell. Bourne však uvedl, že jeho shell byl lepší pro skriptování a byl k dispozici na jakémkoli systému Unix,[11] a Tom Christiansen také kritizoval C shell jako nevhodný pro skriptování a programování.[12]
Almquist skořápky
Kvůli problémům s autorskými právy kolem Bourne Shell, jak byl používán v minulosti CSRG Uvolnění BSD, Kenneth Almquist vyvinul klon Bourne Shell, známý některými jako Almquistova skořápka a dostupné pod Licence BSD, který se dnes používá u některých potomků BSD a v situacích s nízkou pamětí. Almquist Shell byl portován na Linux a port byl přejmenován na Debian Almquist shell nebo pomlčka. Tento shell poskytuje rychlejší provedení standardu sh
(a standard POSIX sh
, v moderních potomcích) skripty s menší pamětí než jeho protějšek, Bash. Jeho použití má tendenci vystavovat bashismů - bash-centrické předpoklady vytvořené ve skriptech určených k běhu na sh.
Ostatní granáty
- Bash (dále jen Bourne-Again shell) byl vyvinut v roce 1989 pro GNU projekt a zahrnuje funkce z prostředí Bourne shell, csh a ksh. Má to být kompatibilní s POSIX.
- rc byl vytvořen v Bell Labs podle Tom Duff jako náhrada za sh Verze 10 Unix. Je to výchozí prostředí pro Plán 9 od Bell Labs. Bylo přeneseno do systému UNIX jako součást Plánujte 9 z uživatelského prostoru.
- Z pláště, vyvinutý Paulem Falstadem v roce 1990, je rozšířený Bourneův shell s velkým množstvím vylepšení, včetně některých funkcí Bash, ksh, a tcsh.
Používání
Bourneova skořápka byla kdysi standardní u všech značkových Unix systémy, i když historicky BSD -založené systémy měly napsáno mnoho skriptů csh. Jako základ POSIX sh
syntaxe, skripty prostředí Bourne lze běžně spouštět Bash nebo pomlčka na GNU /Linux nebo jiný Unixový systémy.
Viz také
Reference
- ^ https://www.bsdcan.org/2015/schedule/events/612.cs.html Stephen Bourne Keynote for BSDCan 2015
- ^ A b McIlroy, M. D. (1987). Čtenář Research Unix: anotované výňatky z Programmer's Manual, 1971–1986 (PDF) (Technická zpráva). CSTR. Bell Labs. 139.
- ^ „A-Z programovacích jazyků: Bourne shell nebo sh“. computerworld.com.au. Archivovány od originál dne 11. ledna 2010. Citováno 6. března 2009.
- ^ Bourne, Steve (12. ledna 1979). "mac.h - Makra používaná Bournem ke strukturování C jako Algol68C". AT&T Corporation. Citováno 9. září 2006.
- ^ Landon Curt Noll; Simon Cooper; Peter Seebach & Leonid A. Broukhis (2004). „IOCCC FAQ - Q / A: Jak začal IOCCC?“. www.ioccc.org. Citováno 9. září 2006.
- ^ „co je to za skořápku“. www.in-ulm.de.
- ^ "tradiční rodina / historie a vývoj prostředí Bourne shell". www.in-ulm.de.
- ^ Korn, David G. (26. října 1994), „ksh - rozšiřitelný jazyk na vysoké úrovni“, Proceedings of the USENIX 1994 Very High Level Languages SymposiumSdružení USENIX, vyvoláno 5. února 2015,
Místo toho, abychom vymysleli nový skriptovací jazyk, jsme vytvořili systém pro zadávání formulářů úpravou prostředí Bourne a přidáním vestavěných příkazů podle potřeby.
- ^ „Schily Bourne Shell - moderní vylepšený a POSIX kompatibilní zdroj Bourne Shell udržovaný Jörgem Schillingem“. Schily-Tools.
- ^ Úvod do shellu C. podle Bill Joy.[stránka potřebná ]
- ^ Bourne, Stephen R. (říjen 1983). „Unix Shell“. BYTE. str. 187. Citováno 30. ledna 2015.
- ^ Tom Christiansen (28. září 1995). „Programování Csh považováno za škodlivé“. Citováno 17. února 2014.
externí odkazy
![]() | Tato část je Použití externí odkazy nemusí dodržovat zásady nebo pokyny Wikipedie.Srpna 2016) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
- Jednotliví členové "tradiční rodiny Bourneových mušlí"
- „Charakteristické společné vlastnosti tradičních Bourneových granátů“
- Historický zdrojový kód jazyka C pro prostředí Bourne pomocí maker mac.h z roku 1979
- Původní dokumentace společnosti Bourne Shell z roku 1978
- Port shellu SVR4 Bourne „heirloom“ z OpenSolaris do některých dalších unixových systémů
- Migrace ze prostředí System V (SVR4) do prostředí POSIX
- Výukový program pro Bourne Shell (syntaxe)
- Rozdíly v prostředí FAQ
- Howard Dahdah, A – Z programovacích jazyků: Bourne shell nebo sh - Podrobný rozhovor se Stevem Bournem, tvůrcem shellu Bourne, nebo sh, Computerworld, 5. března 2009.