csh
| C shell | |
|---|---|
| Тип | Командная оболочка UNIX |
| Автор | Билл Джой |
| Разработчик | Билл Джой |
| Написана на | Си |
| Операционные системы | BSD,UNIX,Linux,macOS |
| Дата выпуска | 1978 (1978) |
| Последняя версия | 6.20.00 (24 ноября 2016[1]) |
| Репозиторий | cvsweb.netbsd.org/bsdweb… cvsweb.openbsd.org/cgi-b… |
| Лицензия | Лицензия BSD |
C shell (csh) —командная оболочка UNIX со встроенным скриптовым языком, разработаннаяБиллом Джоем, активным разработчикомBSD UNIX и создателем редактораvi, в1979 году.
Базировался на коде командного интерпретатора шестой версииUNIX. Скриптовый язык не уступаетBourne shell по мощности, но отличается синтаксисом. В то время как Борн скопировал все основные операторы с языкаАлгол 68, Билл Джой использовал в качестве макета языкСи, вероятно, руководствуясь своими предпочтениями и предпочтениями других пользователей BSD UNIX.
В начале1990-х годов C shell подвергся критике за свою двусмысленность и немногословность интерпретатора, останавливающего выполнение скрипта, но не сообщающего никаких подробностей о том, что же всё-таки произошло. Порой скрипты csh работали совсем не так, как этого ожидал пользователь. Также встречались ситуации, когда интерпретатор отбраковывал, казалось бы, непротиворечивые строки кода.
C shell вошёл в поставку 4.1BSD и до сих пор остаётся базовой частью всех её потомков, в том числеFreeBSD иOpenBSD.
Сравнение с Bourne shell
[править |править код]Условие
[править |править код]Bourne shell #!/bin/shif[$days-gt365]thenechoThisisoverayear.fi | C shell #!/bin/cshif($days > 365)thenechoThis is over a year.endif |
Цикл с предусловием
[править |править код]Bourne shell #!/bin/shi=2j=1while[$j-le10]doecho'2 **'$j=$ii=`expr$i'*'2`j=`expr$j+1`done | C shell #!/bin/cshseti= 2setj= 1while($j <= 10)echo'2 **'$j=$i @ i *= 2 @ j++end |
Цикл со счётчиком
[править |править код]Bourne shell #!/bin/shforiind*docase$iind?)echo$iisshort;;*)echo$iislong;;esacdone | C shell #!/bin/cshforeachi( d*)switch($i)cased?:echo$i is shortbreaksw default:echo$i is longendswend |
Применяемость
[править |править код]C-shell входил в состав UnixBSD и в ходе заимствования её СССР получил применение в её русской локализацииДЕМОС; при развитии нового проекта под GNU (UNIX была защищена авторским правом) Linux была ориентирована накомандный процессор Боурна с другим синтаксисом. В дальнейшем ввиду равномощности языков программирования они были включены в bash, а ksh, csh, и другие интерпретаторы реализованы в видежёстких ссылок в файловой системе на bash.
Примечания
[править |править код]- ↑Zoulas, Christos (24 Ноябрь 2016).tcsh-6.20.00 is now available!.mx.gw.com. Архивировано изоригинала 25 Ноябрь 2016. Дата обращения: 24 Ноябрь 2016.Источник . Дата обращения: 18 марта 2019. Архивировано изоригинала 25 ноября 2016 года.
- Страницы, использующие устаревший тег source
- Википедия:Статьи без ссылок на источники с июня 2023 года
- Википедия:Статьи без источников (тип: язык программирования)
- Википедия:Статьи без источников (тип: свободное программное обеспечение)
- Страницы с неизвестными параметрами шаблона Программа
- ПРО:ИТ:Статьи по алфавиту
- ПРО:ИТ:Последняя правка: в позапрошлом году
- Википедия:Шаблон «Внешние ссылки» пуст