csh
C shell (csh) — командная оболочка UNIX со встроенным скриптовым языком, разработанная Биллом Джоем, активным разработчиком BSD UNIX и создателем редактора vi, в 1979 году.
C shell | |
---|---|
Тип | Командная оболочка UNIX |
Автор | Билл Джой |
Разработчик | Билл Джой |
Написана на | Си |
Операционная система | BSD, UNIX, Linux, Mac OS X |
Первый выпуск | 1978 (1978) |
Последняя версия | 6.20.00 (24 ноября 2016[1]) |
Лицензия | Лицензия BSD |
Базировался на коде командного интерпретатора шестой версии UNIX. Скриптовый язык не уступает Bourne shell по мощности, но отличается синтаксисом. В то время как Борн скопировал все основные операторы с языка Алгол 68, Билл Джой использовал в качестве макета язык Си, вероятно, руководствуясь своими предпочтениями и предпочтениями других пользователей BSD UNIX.
В начале 1990-х годов C shell подвергся критике за свою двусмысленность и немногословность интерпретатора, останавливающего выполнение скрипта, но не сообщающего никаких подробностей о том, что же всё-таки произошло. Порой скрипты csh работали совсем не так, как этого ожидал пользователь. Также встречались ситуации, когда интерпретатор отбраковывал, казалось бы, непротиворечивые строки кода.
C shell вошёл в поставку 4.1BSD и до сих пор остаётся базовой частью всех её потомков, в том числе FreeBSD и OpenBSD.
Сравнение с Bourne shellПравить
УсловиеПравить
Bourne shell #!/bin/sh
if [ $days -gt 365 ]
then
echo This is over a year.
fi
|
C shell #!/bin/csh
if ( $days > 365 ) then
echo This is over a year.
endif
|
Цикл с предусловиемПравить
Bourne shell #!/bin/sh
i=2
j=1
while [ $j -le 10 ]
do
echo '2 **' $j = $i
i=`expr $i '*' 2`
j=`expr $j + 1`
done
|
C shell #!/bin/csh
set i = 2
set j = 1
while ( $j <= 10 )
echo '2 **' $j = $i
@ i *= 2
@ j++
end
|
Цикл со счётчикомПравить
Bourne shell #!/bin/sh
for i in d*
do
case $i in
d?) echo $i is short ;;
*) echo $i is long ;;
esac
done
|
C shell #!/bin/csh
foreach i ( d* )
switch ( $i )
case d?:
echo $i is short
breaksw
default:
echo $i is long
endsw
end
|
ПримечанияПравить
- ↑ Zoulas, Christos (24 November 2016), tcsh-6.20.00 is now available!, <http://mx.gw.com/pipermail/tcsh/2016-November/005021.html>. Проверено 24 ноября 2016. Архивная копия от 25 ноября 2016 на Wayback Machine