csh

C shell (csh) — командная оболочка UNIX со встроенным скриптовым языком, разработанная Биллом Джоем, активным разработчиком BSD UNIX и создателем редактора vi, в 1979 году.

C shell
Скриншот программы C shell
Тип Командная оболочка UNIX
Автор Билл Джой
Разработчик Билл Джой
Написана на Си
Операционные системы BSD, UNIX, Linux, macOS
Первый выпуск 1978 (1978)
Последняя версия 6.20.00 (24 ноября 2016[1])
Репозиторий github.com/freebsd/freeb…
Лицензия Лицензия BSD

Базировался на коде командного интерпретатора шестой версии UNIX. Скриптовый язык не уступает Bourne shell по мощности, но отличается синтаксисом. В то время как Борн скопировал все основные операторы с языка Алгол 68, Билл Джой использовал в качестве макета язык Си, вероятно, руководствуясь своими предпочтениями и предпочтениями других пользователей BSD UNIX.

В начале 1990-х годов C shell подвергся критике за свою двусмысленность и немногословность интерпретатора, останавливающего выполнение скрипта, но не сообщающего никаких подробностей о том, что же всё-таки произошло. Порой скрипты csh работали совсем не так, как этого ожидал пользователь. Также встречались ситуации, когда интерпретатор отбраковывал, казалось бы, непротиворечивые строки кода.

C shell вошёл в поставку 4.1BSD и до сих пор остаётся базовой частью всех её потомков, в том числе FreeBSD и OpenBSD.

Сравнение с Bourne shell

править

Условие

править

Цикл с предусловием

править

Цикл со счётчиком

править

Применяемость

править

C-shell входил в состав Unix BSD и в ходе заимствования её СССР получил применение в её русской локализации ДЕМОС; при развитии нового проекта под GNU (UNIX была защищена авторским правом) Linux была ориентирована на командный процессор Боурна с другим синтаксисом. В дальнейшем ввиду равномощности языков программирования они были включены в bash, а ksh, csh, и другие интерпретаторы реализованы в виде жёстких ссылок в файловой системе на bash.

Примечания

править
  1. Zoulas, Christos (24 Ноябрь 2016). "tcsh-6.20.00 is now available!". mx.gw.com. Архивировано из оригинала 25 ноября 2016. Дата обращения: 24 ноября 2016. Источник. Дата обращения: 18 марта 2019. Архивировано из оригинала 25 ноября 2016 года.