C shell

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

C shell (csh) je unixový shell vyvinutý Billem Joyem pro BSD Unix.

Byl původně odvozen z šestého vydání Unixu /bin/sh (kterým byl Thompson shell), předchůdce Bourne shellu. Jeho syntaxe je silně ovlivněná programovacím jazykem C (odtud pochází název shellu). +more C shell přidal mnoho vylepšení oproti Bourne shell, jako například aliasy a historii příkazů.

Protože mnoho z vlastností C shellu bylo implementováno do jiných shellů, původní C shell je používán minimálně; byl nahrazen jinými (částečně kompatibilními) shelly, jako je Tenex C shell (tcsh). Nezávisle vyvinutý a zmodernizovaný C shell, vytvořený Nicolem Hamiltonem, také přežil ve Windows ve formě Hamilton C shellu.

Vlastnosti

Zástupné znaky

Zástupné znaky (žolíky) slouží k usnadnění zadávání argumentů. Jejich použití je stejné jako u shellu standardního: * * - vyhoví libovolný řetězec, př. +more a* → a, ab * . - vyhoví jeden libovolný znak, př. a. → aa, ab, ac * [abc] - vyhoví libovolný znak z uvedených znaků, př. a[ab] → aa, ab * \ - zbavuje následující znak jeho speciálního významu.

Důležité je, že soubory se jmény začínajícími tečkou nevyhovují žolíkovému zápisu *. Je to proto, aby při použití zástupných znaků nemohly být omylem postiženy soubory . +more (což je aktuální adresář) nebo . (nadřazený adresář) ani další soubory začínající tečkou. Pokud chceme pracovat se soubory, jejichž jméno začíná tečkou a vyhnout se uvedeným dvěma položkám pro aktuální a nadřízený adresář, je třeba použít složitější zápis; jednou z možností je . [^. ]*, který ovšem nepostihuje soubory, jejichž jména začínají dvěma tečkami.

Přesměrování vstupu a výstupu příkazu

Standardní vstup/výstup může být přesměrován do souboru symboly: * < soubor - vstupu je přiřazen soubor * > soubor - výstupu je přiřazen soubor * >> soubor - výstup je přiřazen na konec souboru * >& soubor - výstup a chybový výstup jsou přesměrovány do souboru * >>& soubor - výstup a chybový výstup jsou připojeny na konec souboru

Výhody

Výhodou C shellu je, že umožňuje chránit soubory před nechtěným přepsáním při špatném přesměrování výstupu. Další výhodou je, že pokud máme nastavenou proměnnou noclobber, tak nám C shell odmítne přesměrovat výstup příkazu do již existujícího souboru.

Práce na popředí a pozadí

Máme-li zadán jeden nebo více příkazů na příkazovém řádku, C shell z nich vytvoří jednotku zvanou job. Pokud je příkazový řádek ukončen znakem &, je job spuštěn na pozadí. +more Job spuštěný na pozadí probíhá zároveň s jobem prováděným na popředí. Při spouštění jobu na pozadí vrací C shell číslo jobu (je zobrazeno v hranatých závorkách) a identifikační čísla procesů, z nichž je job složen.

Proměnné

Hodnotou proměnné v C shellu je řetězec. Přiřazení hodnoty proměnné se provádí příkazem set. +more Samotný příkaz set bez argumentů vypíše hodnoty všech definovaných proměnných, které C shell používá ke své práci.

Přes proměnnou argv má autor scénáře přístup k jednotlivým argumentům - pozičním parametrům dané kopie C shellu. Proměnná cwd je absolutní jméno aktuálního adresáře. +more home obsahuje absolutní jméno domovského adresáře. V proměnné path hledá C shell příkazové soubory. prompt obsahuje řetězec, kterým dává C shellu výzvu k zadání příkazu. Ve status najdeme stavový příznak vrácený posledním skončeným programem. term označuje typ terminálu, ze kterého uživatel pracuje. user je jméno uživatele přihlašujícího se do systému.

Historie

C shell je schopný zapamatovat si několik předcházejících příkazových řádků, které uživatel zadal, a tedy lze se k těmto příkazům vrátit nebo je upravit a použít je v pozměněné podobě. Počet příkazových řádků je dán obsahem proměnné history (obvykle je nastaven na hodnotu 10).

Kritika

Tom Christiansen ve svém článku „Csh Programming Considered Harmful“ kritizuje některé nedomyšlenosti návrhu C shellu a chyby jeho historických implementací. Dospívá k názoru, že by se C shell neměl používat pro programování skriptů.

Odkazy

Reference

Externí odkazy

[url=https://www.grymoire.com/Unix/Csh.html]Csh - The C Shell[/url] - stránka podrobně rozebírající kladné i záporné vlastnost C shellu.

Kategorie:Příkazové interprety Kategorie:Software pro Unix

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top