Bourne shell
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 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.
Vývojář | Stephen R. Bourne |
---|---|
První vydání | 1977 |
Operační systém | Unix |
Typ softwaru | unixový shell, standardní UNIXová utilita či příkaz, programovací jazyk a command line interface language |
Některá data mohou pocházet z datové položky. |
Původ
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
- 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
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
- 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
Jako většina z následníků bylo řízení úloh zahrnuto do pozdějších verzí Bourne shellu.
Korn shell (ksh)
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
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)
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í
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
Reference
V tomto článku byl použit překlad textu z článku Bourne shell na anglické Wikipedii.
Externí odkazy
- Kniha Skriptování v Bournově shellu ve Wikiknihách