Bourne shell

Z Wikipedie, otevřené encyklopedie
Bourne shell
VývojářStephen R. Bourne
První vydání1977
Operační systémUnix
Typ softwaruunixový shell, standardní UNIXová utilita či příkaz, programovací jazyk a command line interface language
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 vydán v roce 1977 a byl distribuován školám a univerzitám. Jeho autorem je Stephen R. 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 Unixu Version 7, 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]

  • umožnit aby shell skripty mohly být používány 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. Oblibu získal s vydáním knihy Unix od Briana W. Kernighana a Roba Pikeho programovací prostředí, což byla první komerčně vydaná 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 standardní chybový výstup, dovolující mnohem větší programovou kontrolu běhu skriptu a oddělení chybových zprávy od výstupních 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, System III, 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 vytvořil Tom Duff v Bellových laboratořích jako náhradu sh pro Unix Verze 10. Je standardním shellem 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 portovaný na Linux byl přejmenován na Debian Almquist shell nebo dash. Tento shell poskytuje mnohem větší výkon než standardní sh skripty 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 působí problémy, pokud autor skriptu nespecifikoval požadavek na jeho 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]

Reference[editovat | editovat zdroj]

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

Externí odkazy[editovat | editovat zdroj]