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. 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. 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 oraz wersji dla OS/2 z 1988 roku napisanej przez Hamilton Laboratories, przeniesionej w 1992 także na system Windows NT.
Lista innowacji aliasy adresowalna historia poleceń (np. !!, !$) kontrola procesów pozwalająca na ich zastopowanie i przeniesienie w tło notacja ~ jako skrót do katalogu domowego użytkownika. Na klawiaturze terminala ADM-3A używanego przez Joya tylda znajdowała się na przycisku HOME. uzupełnianie nazw obiektów systemu pliku zmienna CDPATH jako rozszerzenie idei zmiennej PATH dla nawigacji w systemie plików
Zobacz też powłoka tcsh powłoka Bourne’a
Uwagi
Przypisy
Linki zewnętrzne An Introduction to the C shell, William Joy
Kategoria:Powłoki systemowe UNIX Kategoria:Oprogramowanie na licencji BSD