Bourne shell

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání
Bourne shell
Version 7 UNIX SIMH PDP11 Kernels Shell.png
Vývojář Stephen R. Bourne
První vydání 1977
Operační systém Unix
Některá data mohou pocházet z datové položky.

Bourne shell (zkratka sh) byl standardním unixovým shellem pro systém Version 7 Unix, který byl uvolněn v roce 1977 a byl distribuován školám a univerzitám. Jeho autorem je Steph Bourne z AT&T Bell Laboratories. Bourne shell je soubor /bin/sh a zůstává stále implicitním shellem v mnoha unixových distribucích.

Původ[editovat | editovat zdroj]

Bourne shell nahradil původní Thompson shell se stejným jménem /bin/sh v systému Version 7 Unix v roce 1977. Protože většina současných unixových systémů vychází právě z Version 7 Unix, je původní Thompsonův shell považován za zastaralý a již se nepoužívá. Standardním shellem, na který se tak mohou programátoři spolehnout, je právě Bourne shell.

V současné době je /bin/sh často pouze symbolický odkaz na bash (Bourne Again Shell), který se při volání tímto jménem chová jako původní Bourne shell.

Primární cíle[editovat | editovat zdroj]

  • povolit shell skriptům, aby byly použity jako filtry
  • poskytovat programovatelnost včetně kontroly toku a proměnných
  • ovládání všech vstupů/výstupů jako popisovače souborů
  • kontrola signálů zjištěných uvnitř skriptů
  • žádné limity na délky řetězců při interpretování shell skriptů
  • zjednodušení a zevšeobecnění mechanismu citací řetězců

Tyto mechanismy byly přidány do Verze 7. Tyto souvislosti byly ustanoveny na začátku a poskytují cestu shell skriptům k tomu, aby byly podskriptům v kontextu bez toho, aniž by musely užívat explicitní situační parametry.

Významné rysy[editovat | editovat zdroj]

Ačkoliv je užívaný jako interaktivní příkazový interpret, byl vždy zamýšlen jako skriptovací jazyk. S vydáním knihy Unix od Briana W. Kernighana a Roba Pikeho programovací prostředí shell získalo popularitu . Toto byla první komerčně publikovaná kniha, která představovala shell jako programovací jazyk ve formě výuky.

Bourne shell byl též první, který představoval konvenci použití file descriptor 2 pro error messages, dovolující mnohem větší programovou kontrolu běhu skriptu a držení zprávy o chybě oddělený od dat.

Inovace[editovat | editovat zdroj]

  • command substitution používání zpětných uvozovek: `command`.
  • používání << k vsazení bloku vstupního textu uvnitř skriptu.
  • "for ~ do ~ done smyčka zvláště použití $* smyčky přes argument.
  • case ~ in ~ esac mechanismus výběru zejména k tomu, aby pomáhal syntaktické analýze.
  • sh poskytl podporu pro prostředí proměnných používajících parametrů klíčového slova a exportované do proměnné.

V průběhu let byl Bourne shell rozšířený v AT&T. Různé varianty jsou nazvané jako příslušná AT&T Unixová verze, která byla uvolněna (důležitými variantami jsou Verze7, SystemIII, SVR2, SVR3, SVR4). Protože shell nebyl nikdy verzí a jediný způsob jeho identifikování je otestovat jeho rysy.

Následníci[editovat | editovat zdroj]

Jako většina z následníků bylo řízení úloh zahrnuto do pozdějších verzí Bourne shellu.

Korn shell (ksh)[editovat | editovat zdroj]

Související informace naleznete také v článku Korn shell.

Korn shell (ksh), mnohem později napsaný Davidem Kornem, byl střední cestou mezi dvěma shelly se syntaxemi přebraných z Bourne shellu a řízení úloh vytažených z C shellu. Funkčnost z originálního Korn shellu byla užívána jako základ pro POSIX shell standard. Od roku 2000 byl dán jako otevřený zdroj v novějších verzích a je použitý v některých Linuxových distribucích; tam je také klon známý jako pdksh.

RC[editovat | editovat zdroj]

RC byl vytvořený v Bell Labs od Toma Duffa jako výměna za sh pro Unix Verze 10. To je standard shell pro Plan 9 z Bell Labs a Inferno. Portový Unix byl součástí Plan 9 z User Space.

Bourne Again Shell (bash)[editovat | editovat zdroj]

Bash (Bourne Again shell) byl později vyvinut pro GNU projekt a přebral rysy ze shellů Bourne shell, C shell a Korn shell.

Vlivem autorského práva vypadá prostředí Bourne shell stejně, jako to bylo použito v BSD vydáních. Kenneth Almquist vyvinul klon Bourne shell, známý jako Almquist shell a dostupný pod BSD licencí, který se dnes užívá na některých BSD následnících. Almquist shell byl portovaný Linux přejmenovaný na Debian Almquist shell nebo dash. Tento shell poskytuje mnohem větší výkon standardních sh skriptů při menší paměťové zátěži než jeho běžnější protějšek bash. Bohužel jeho použití často odhalí bashismy — bash-centrické konstrukce, které v Bourne shellu nejsou dostupné a tvoří problémy, pokud autor skriptu nespecifikoval požadavek na spuštění v bashi.

Použití[editovat | editovat zdroj]

Bourne shell je v současné době standardem ve všech značkových unixových systémech, ačkoliv BSD systémy měly historicky mnoho skriptů napsaných v csh. Bourne shell skripty mohou být v Linuxu a dalších unixových systémech spuštěny pomocí shellů bash nebo dash.

Odkazy[editovat | editovat zdroj]

V tomto článku byl použit překlad textu z článku Bourne shell na anglické Wikipedii.