Интерпретатор командной строки
В статье не хватает ссылок на источники (см. также рекомендации по поиску). |
Командный интерпретатор, интерпретатор командной строки — компьютерная программа, часть операционной системы, обеспечивающая базовые возможности управления компьютером посредством интерактивного ввода команд через интерфейс командной строки или последовательного исполнения пакетных командных файлов.
Как правило его функции сводятся к предоставлению пользователю возможности запускать другие программы, может также содержать некоторые базовые команды ввода-вывода и свой простой скриптовый язык программирования.
В операционные системы MS-DOS и Windows 95 включён командный интерпретатор COMMAND.COM, в Windows NT — cmd.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: