Главная > Среда и утилиты > csh

csh: Запуск и скрипты C Shell

csh (C Shell) — это командный интерпретатор и язык сценариев, используемый в системах, подобных Unix. Он предлагает синтаксис, похожий на язык C, что делает его знакомым для программистов, и включает такие функции, как история команд, псевдонимы (alias) и управление заданиями. Он в основном используется для интерактивных оболочек или для выполнения сценариев оболочки.

Обзор

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 могут вызывать проблемы с переносимостью или приводить к ошибкам в определенных ситуациях.


Те же команды в категории