Любая операционная система имеет в своем составе как минимум одну системную программу-оболочку (shell), предназначенную для выполнения команд, запуска приложений и скриптов. В ОС Linux существует несколько десятков оболочек, наиболее распространенными из которых являются sh и bash. Для ОС Windows также разработано несколько оболочек, наиболее известной из которых является командный интрепретатор cmd.exe. Менее известен Windows Scripting Host, в виде интерпретатора cscript.exe. В новых версиях Windows (Vista и выше) базовой оболочкой является PowerShell.
Скриптом называется текстовый файл, содержащий набор команд оболочки или другого интрепретатора команд, который может быть запущен и выполнен как любая программа. В ОС Windows файлы скриптов имеют расширение .bat или .cmd и исполняются командным интерпретатором cmd.exe. В OC Linux и большинстве других unix-систем, у файлов-скриптов присутствует бит исполняемости, а первая строка указывает на используемый командный интерпретатор (его местоположение в файловой системе) и начинается с набора символов #! (Sha-Bang). Например, для оболочки bash первая строка скрипта будет выглядеть так:
#!/bin/bashДля файлов-скриптов в ОС Linux рекомендуется использовать расширение, указывающее на интерпретатор команд. Например, файлы скриптов, обрабатываемые оболочкой, часто имеют расширение .sh (от англ. shell - оболочка).
В современных ОС каждой программе и скрипту при запуске передается набор переменных окружения в виде строковых пар ИМЯ=ЗНАЧЕНИЕ. В этот набор включены данные об операционной системе, в том числе - имя текущего пользователя, используемый язык, домашний каталог пользователя, набор путей для запуска программ, версия оболочки, каталог для временных файлов и многое другое. Список переменных окружения может быть получен с помощью команды set. Программист может устанавливать и получать значения переменных окружения, использовать их для передачи данных от одной программы (скрипта) другой.
Передача данных между программами (скриптами) может осуществляться также с помощью параметров, заданных в командной строке при запуске программы (скрипта). Параметры обычно идентифицируются цифровыми значениями (0 - имя самой программы, 1 - первый параметр, 2 - второй параметр и т.д.), в остальном доступ к ним аналогичен доступу к переменным окружения.