Autor | Bill Joy |
---|---|
Pierwsze wydanie | 1978 |
Aktualna wersja stabilna | 6.20.00 |
Język programowania | C |
System operacyjny | POSIX |
Rodzaj | Powłoka systemowa |
Licencja | BSD |
csh (od ang. C shell) — jedna z historycznych powłok uniksowych. Napisana przez Billa Joya w czasie prac nad Uniksem BSD i upubliczniona w 1978[1]. Składnia języka używanego w csh przypomina język C. Stąd nazwa C shell będąca grą słów. Dosłownie oznacza powłokę [o składni] C, fonetycznie przypomina jednak wymowę sea shell, czyli muszla.
Wniosła wiele ulepszeń w stosunku do oryginalnej powłoki Bourne’a ukierunkowanych na interaktywną pracę z systemem, m.in. aliasy i historię poleceń. Z kolei dzięki wewnętrznej ewaluacji wyrażań była szybsza od poprzedniczki w zastosowaniach wsadowych, nie musząc polegać na wywołaniach zewnętrznych trików jak [
– udający element składni, a będący faktycznie dowiązaniem do programu test
, czy expr
zapewniający wsparcie dla operacji arytmetycznych.
Obecnie oryginalna powłoka csh jest rzadko wykorzystywana do pracy interaktywnej. Została wyparta przez rozszerzoną wersję w postaci tcsh oraz nowsze powłoki kompatybilne ze składnią oryginalnego sh jak Korn shell (ksh), bash i zsh.
Jednocześnie choć wprowadziła wiele innowacyjnych rozwiązań do trybu interaktywnego, dosyć powszechnie jest odradzana jako język skryptowy[2][3]. Głównym argumentem za pisaniem skryptów powłoki w języku Bourne shell jest jej dostępność w każdym systemie zgodnym ze specyfikacją Single UNIX Specification, co zapewnia przenośność kodu.
Mimo szeregu innowacji, które z czasem były reimplementowane w innych powłokach, csh doczekało się jedynie 2 klonów (tcsh jest rozwinięciem oryginalnej implementacji i tym samym nie jest uważane za klon): komercyjnej implementacji Allena Holuba dla systemu MS DOS z 1986 roku[4] oraz wersji dla OS/2 z 1988 roku napisanej przez Hamilton Laboratories, przeniesionej w 1992 także na system Windows NT[5].