Интерпретатор командной строки

Интерпретатор командой строки в ОС UNIX bash
cmd.exe Windows после запуска
Сессия в Windows PowerShell

Командный интерпретатор, интерпретатор командной строки — компьютерная программа, часть операционной системы, обеспечивающая базовые возможности управления компьютером посредством интерактивного ввода команд через интерфейс командной строки или последовательного исполнения пакетных командных файлов.

Как правило его функции сводятся к предоставлению пользователю возможности запускать другие программы, может также содержать некоторые базовые команды ввода-вывода и свой простой скриптовый язык программирования.

В операционные системы MS-DOS и Windows 95 включён командный интерпретатор COMMAND.COM, в Windows NTcmd.exe, в OS/2 командный интерпретатор тоже называется cmd.exe, самый распространённый командный интерпретатор в Linux и FreeBSD — bash, помимо которого есть большое семейство других.

Как правило, при низкоуровневой настройке ОС у пользователя есть возможность менять командный интерпретатор, используемый по умолчанию.

К функциям интерпретатора командной строки относятся:

  • Взаимодействие с пользователем (редактирование командной строки, история команд и т. д.).
  • Обработка (расширение) шаблонов имен («*», «?» и т. д.).
  • Перенаправление ввода-вывода команд.
  • Управление заданиями.

Программирование в интерпретаторе

Зачастую интерпретатор командной строки предоставляет возможность использования циклов, операторов условного и безусловного перехода и переменных. Он позволяет писать как несложные сценарии для автоматизации повседневных задач, так и довольно сложные программы.

Пример калькулятора для интерпретатора командной строки Windows/MS-DOS.

@echo off
:begin
Cls
Title Калькулятор
Color 71
Echo Введите уравнение:
Set /P exp=
Set /A result=%exp%
Title Вычислено
Echo Ваше уравнение: %exp%
Echo Решение: %result%
Pause>nul
goto begin

Калькулятор, для командной оболочки bash:

#!/usr/bin/env bash

echo "Калькулятор"
while read -p "Введите выражение: " expr
do
    echo "Результат: $(($expr))"
done

Понятия

Оболочка в своей работе оперирует простыми командами.

Простая команда — это последовательность слов через пробел. Нажатие клавиши Enter при вводе команды или перевод строки при обработке сценария являются для командного интерпретатора признаком завершения команды. Она обрабатывается и выполняется.

Конвейер — это последовательность одной или более команд, разделенных |(& для cmd.exe). Стандартный выходной поток каждой команды, кроме последней, соединяется при помощи программного канала со стандартным входным потоком следующей команды. Каждая команда выполняется как отдельный процесс; интерпретатор ожидает окончания последней команды. Статусом выхода конвейера является статус выхода его последней команды. Вот пример простого конвейера для интерпретатора bash :

$ ls | tee save | wc
     15      15     100

Командные интерпретаторы

DOS:

Windows:

Unix:

См. также

Примечания

Ссылки