Bourneova skořápka - Bourne shell
Původní autoři | Stephen Bourne |
---|---|
Vývojáři | Bell telefonní laboratoře |
První vydání | 1979 |
Operační systém | Unix |
Typ | Unixový shell |
Licence | [ diskutováno ] |
Bourne Shell ( sh
) je plášť příkazového řádku interpret pro počítačové operační systémy .
Shell Bourne byl výchozí shell pro Unix verze 7 . Systémy podobné Unixu nadále mají- /bin/sh
což bude Bourne shell nebo symbolický odkaz nebo pevný odkaz na kompatibilní shell-i když většina uživatelů používá jiné shelly.
Vyvinutý Stephenem Bournem v Bell Labs , byla náhradou za shell Thompson , 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. Ačkoli se používá jako interaktivní příkazový tlumočník, byl také zamýšlen jako skriptovací jazyk a obsahuje většinu funkcí, které jsou běžně považovány za produkci strukturovaných programů.
Získal popularitu vydáním Unix Programming Environment od Briana Kernighana a Roba Pikea - první komerčně vydané knihy, která prezentovala shell jako programovací jazyk formou tutoriálu.
Dějiny
Původy
Práce na shellu Bourne byly původně zahájeny v roce 1976. Bourne shell, který se poprvé objevil ve verzi 7 Unix , nahradil shell Mashey .
Některé z hlavních cílů skořepiny byly:
- Chcete -li povolit použití skořepinových skriptů jako filtrů .
- Zajistit programovatelnost včetně řídicího toku a proměnných .
- Ovládejte všechny popisovače vstupních/výstupních souborů .
- Ovládejte zpracování signálu v rámci skriptů.
- Při interpretaci shell skriptů neexistují žádná omezení na délku řetězců.
- Racionalizovat a zobecnit mechanismus citování řetězců.
- Mechanismus prostředí . To umožnilo vytvořit kontext při spuštění a poskytlo způsob, jakým skripty prostředí mohou předávat kontext dílčím skriptům ( procesům ), aniž by bylo nutné používat explicitní poziční parametry .
Vlastnosti původní verze
Mezi vlastnosti shellu UNIX Bourne 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, možnosti nabídek a funkce.
- Proměnné bez rychlosti
- Poskytuje místní a globální rozsah proměnných
- Skripty před spuštěním nevyžadují kompilaci
- Nemá možnost přejít, takže může být nutná restrukturalizace kódu
-
Příkaz substituce za použití jednoduchých zpětných uvozovek :
`command`
. -
Zde jsou dokumenty použity
<<
k vložení bloku vstupního textu do skriptu. -
for ~ do ~ done
smyčky, zejména použití$*
smyčky přes argumenty, stejně jakofor ~ in ~ do ~ done
smyčky pro iteraci přes seznamy. -
case ~ in ~ esac
mechanismus výběru, primárně určený k pomoci při analýze argumentů . -
sh
poskytovala podporu pro proměnné prostředí pomocí parametrů klíčových slov a exportovatelných proměnných. - Obsahuje silná ustanovení pro ovládání vstupu a výstupu a v jeho zařízeních pro přizpůsobení výrazů .
Shell Bourne byl také první, kdo zavedl konvenci používání deskriptoru souborů 2>
pro chybové zprávy , což umožnilo mnohem větší programové ovládání během skriptování tím, že chybové zprávy byly odděleny od dat.
Styl kódování Stephena Bournea byl ovlivněn jeho zkušenostmi s překladačem ALGOL 68C , na kterém pracoval na univerzitě v Cambridgi . Kromě stylu, ve kterém byl program napsán, Bourne znovu části ALGOLu 68 ‚s , a " (za použití místo ) ustanovení ve společném Unix syntaxe Bourne Shell Kromě toho, -. I když V7 skořepina je napsán v C - Bourne využil některá makra, aby dal zdrojovému kódu C příchuť ALGOL 68. Tato makra (spolu s příkazem finger distribuovaným v unixové verzi 4.2BSD ) inspirovala soutěž International Obfuscated C Code Contest (IOCCC).
if ~ then ~ elif ~ then ~ else ~ fi
case ~ in ~ esac
for/while ~ do ~ od
done
od
Funkce zavedené po roce 1979
V průběhu let byla u AT&T vylepšena skořepina Bourne. Různé varianty se tedy nazývají jako příslušná verze AT&T Unix, se kterou byla vydána (některé důležité varianty jsou Version7, SystemIII, SVR2, SVR3, SVR4). Protože shell nebyl nikdy verzován, jediným způsobem, jak jej identifikovat, bylo testování jeho funkcí.
Mezi vlastnosti verzí Bourne od roku 1979 patří:
- Vestavěný
test
příkaz-System III shell (1981) - # jako komentář - System III shell (1981)
- Dvojtečka při nahrazování parametrů "$ {parametr: = slovo}" - shell System III (1981)
-
continue
s argumentem - Shell System III (1981) -
cat <<-EOF
pro odsazené dokumenty - System III shell (1981) - Funkce a
return
vestavěný - shell SVR2 (1984) - Vestavby
unset
,echo
,type
- SVR2 plášť (1984) - Zdrojový kód de-ALGOL68-ized-shell SVR2 (1984)
- Moderní "
$@
" - plášť SVR3 (1986) - Vestavěný-
getopts
plášť SVR3 (1986) - Vyčištěné zpracování parametrů umožňuje rekurzivně volatelné funkce - shell SVR3 (1986)
- 8bitové čištění-shell SVR3 (1986)
- Job control - SVR4 shell (1989)
- Podpora více bajtů-shell SVR4 (1989)
Varianty
DMERT shell
Duplex Multi-Environment Real-Time ( DMERT ) je hybridní operační systém pro sdílení času/v reálném čase vyvinutý v 70. letech minulého století v lokaci Bell Labs Indian Hill v Naperville v Illinois používá snímek Bourne Shell z roku 1978 „VERSION sys137 DATE 1978 Oct 12 22:39:57 ". Shell DMERT běží na počítačích 3B21D, které se stále používají v telekomunikačním průmyslu.
Korunová skořápka
Korn shell (ksh) napsané David Korn vychází z původní Bourne Shell zdrojového kódu, byl uprostřed silnice mezi Bourne shell a C shell . Jeho syntaxe byla čerpána hlavně z Bournovy skořápky, zatímco funkce ovládání úlohy se podobaly těm z C skořepiny. Jako základ standardu POSIX shell byla použita funkčnost původního Korn Shell (známý jako ksh88 od roku jeho zavedení) . Novější verze ksh93 je open source od roku 2000 a používá se v některých distribucích Linuxu . Klon ksh88 známý jako pdksh je výchozí shell v OpenBSD.
Schily Bourne Shell
Schily-Tools společnosti Jörg Schilling obsahuje tři deriváty Bourne Shell.
Vztah k jiným skořápkám
C skořápka
Bill Joy , autor C shell , kritizoval Bourne shell jako nevhodný pro interaktivní použití, úkol, pro který sám Stephen Bourne uznal C shell nadřazenost. Bourne však uvedl, že jeho shell byl lepší pro skriptování a byl k dispozici na jakémkoli unixovém systému a Tom Christiansen také kritizoval C shell jako nevhodný pro skriptování a programování.
Almquistické skořápky
Kvůli problémům s autorskými právy kolem Bourne Shell, jak byl používán v historických vydáních CSRG BSD, vyvinul Kenneth Almquist klon Bourne Shell, známý některými jako Almquist shell a dostupný pod licencí BSD , která se dnes používá na některých BSD potomci a v situacích s nízkou pamětí. Almquist Shell byl přenesen do Linuxu a port byl přejmenován na Debian Almquist shell nebo dash. Tento shell poskytuje rychlejší provádění standardních sh
(a POSIX-standardů sh
, v moderních potomcích) skriptů s menší paměťovou stopou než jeho protějšek, Bash. Jeho použití má tendenci odhalovat bashismy -předpoklady zaměřené na bash vytvořené ve skriptech, které mají běžet na sh.
Jiné skořápky
- Bash ( shell Bourne-Again ) byl vyvinut v roce 1989 pro projekt GNU a obsahuje funkce z prostředí Bourne shell, csh a ksh. Má být kompatibilní s POSIX.
- rc vznikla v Bell Labs od Toma Duffa jako náhrada za sh pro verze 10 Unix . Je to výchozí prostředí Plan 9 od Bell Labs . Byl přenesen do systému UNIX jako součást plánu 9 z User Space .
- Z shell , vyvinutý Paulem Falstadem v roce 1990, je rozšířený Bourneův shell s velkým počtem vylepšení, včetně některých funkcí Bash , ksh a tcsh .
Používání
Shell Bourne byl kdysi standardem všech značkových unixových systémů, ačkoli historicky systémy založené na BSD měly mnoho skriptů napsaných v csh . Jako základ syntaxe POSIX sh
lze skripty Bourne shell obvykle spouštět s Bash nebo dash na Linuxu nebo jiných unixových systémech.
Viz také
Reference
externí odkazy
- Jednotliví členové „The Traditional Bourne Shell Family“
- „Charakteristické společné vlastnosti tradičních Bourneových granátů“
- Historický zdrojový kód C pro shell Bourne pomocí maker mac.h z roku 1979
- Původní dokumentace Bourne Shell z roku 1978
- Port „dědictví“ SVR4 Bourne shell od OpenSolaris k některým dalším unixovým systémům
- Migrace z prostředí System V (SVR4) na prostředí POSIX
- Výukový program Bourne Shell (syntax)
- Rozdíly nejčastějších dotazů
- Howard Dahdah, The A – Z of Programming Languages: Bourne shell, or sh-Hloubkový rozhovor se Stevem Bournem, tvůrcem Bourneova shellu, nebo sh , Computerworld , 5. března 2009.