Обзор
csh — это оболочка, разработанная в конце 1970-х годов, которая, в отличие от Bourne Shell (sh), предоставляет структуры управления, похожие на язык C (if, while, foreach и т. д.). Хотя она обладает удобными для пользователя функциями и мощными возможностями сценариев, некоторые расширенные функции или написание сценариев могут быть более сложными или приводить к неожиданному поведению по сравнению с семейством оболочек Bourne (bash, zsh).
Основные характеристики
- Структура синтаксиса, похожая на язык C
- Функции истории команд и псевдонимов (alias)
- Поддержка управления заданиями (job control)
- Управление переменными среды (set, setenv)
Основные опции
Основные опции, которые можно использовать при запуске команды csh.
Запуск и отладка
Сгенерированная команда:
Комбинируйте команды.
Описание:
`csh` Запускает команду.
Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.
Примеры использования
Различные примеры использования команды csh.
Запуск интерактивной C Shell
csh
Запускает новый интерактивный сеанс C Shell.
Выполнение одной команды C Shell
csh -c 'echo "Hello from Csh!"'
Использует csh для выполнения определенной команды и последующего завершения работы оболочки.
Выполнение сценария C Shell
csh my_script.csh
Выполняет файл my_script.csh как сценарий C Shell. (Файл сценария должен иметь права на выполнение.)
Выполнение сценария в подробном режиме
csh -v my_script.csh
Выводит каждую команду в стандартный поток ошибок перед выполнением сценария, что полезно для отладки.
Выполнение сценария в режиме эхо команд
csh -x my_script.csh
Каждая команда в сценарии выводится в расширенном виде перед ее выполнением.
Установка
csh обычно предустановлен во многих системах Unix и Linux, но в некоторых минимальных конфигурациях может потребоваться его ручная установка. Ниже приведены способы установки csh в основных дистрибутивах.
Системы на базе Debian/Ubuntu
sudo apt update
sudo apt install csh
Установка csh с использованием менеджера пакетов apt.
Системы на базе Red Hat/CentOS/Fedora
sudo yum install csh # или sudo dnf install csh
Установка csh с использованием менеджера пакетов yum или dnf.
Советы и предостережения
Полезные советы и моменты, на которые следует обратить внимание при использовании csh.
Отличия от Bourne Shell
csh имеет значительные синтаксические отличия от семейств оболочек Bourne, таких как bash, sh и zsh. В частности, существуют большие различия в способах объявления и доступа к переменным, условных операторах и синтаксисе циклов, поэтому следует проявлять осторожность при написании сценариев.
- Присваивание переменных: csh: `set var = value`, `setenv VAR value` Bourne Shell: `var=value`, `export VAR=value`
- Условные операторы: csh: `if (condition) then ... endif` Bourne Shell: `if [ condition ]; then ... fi`
- Массивы: Индексы массивов в csh начинаются с 1.
Рекомендуется использовать tcsh
csh больше не активно разрабатывается, и в большинстве современных систем рекомендуется использовать улучшенную версию csh — tcsh (TENEX C Shell). tcsh включает все функции csh, а также предоставляет дополнительные возможности, такие как редактирование командной строки, улучшенное управление историей и программируемое автодополнение.
Больше для интерактивной оболочки, чем для сценариев
Хотя csh отлично подходит в качестве интерактивной оболочки, для написания сложных сценариев семейства оболочек Bourne (bash, zsh) обычно предпочтительнее, поскольку они более мощные, гибкие и менее склонны к неожиданному поведению. Сценарии csh могут вызывать проблемы с переносимостью или приводить к ошибкам в определенных ситуациях.