РУНКОМ
RUNCOM — это CTSS . процессор макрокоманд (скриптов) [1]
История
[ редактировать ]Луи Пузен создал RUNCOM для CTSS примерно в 1963 году. [2] В 1965 году он опубликовал статью с описанием конструкции оболочки Multics , которая включает краткое описание RUNCOM. [3] за ним последовал второй документ, который он выпустил пять дней спустя, описывающий дизайн RUNCOM, в котором были добавлены команды для управления потоком управления , условным ветвлением и циклами. [4]
В контексте Unix-подобных систем термин rc означает фразу « команды запуска ». Он используется для любого файла, содержащего информацию о запуске команды.
От Брайана Кернигана и Денниса Ритчи : [5]
Была возможность выполнять несколько команд, хранящихся в файле; он назывался runcom, что означает «команды запуска», а файл стал называться «runcom». rc в Unix — это реликт этого использования.
Том Ван Флек , инженер Multics , также вспоминает о расширении rc: «Идея сделать оболочку обработки команд обычной подчиненной программой пришла из дизайна Multics и предшествующей программы CTSS Луи Пузена под названием RUNCOM, источник суффикса «.rc» в некоторых файлах конфигурации Unix». [6]
Это также происхождение названия Bell Labs Plan 9 из оболочки Тома Даффа , оболочки rc . Он называется «rc», потому что основная задача оболочки — «запускать команды».
Хотя это и не исторически точно, rc также можно расширить как «управление запуском», поскольку файл rc управляет запуском программы. Например, редактор Vim ищет и считывает содержимое файла .vimrc, чтобы определить его первоначальную конфигурацию. В книге «Искусство программирования для Unix» Эрик С. Рэймонд постоянно называет rc-файлы файлами «управления запуском».
Использование
[ редактировать ]Фон
RUNCOM не является оболочкой в смысле оболочки UNIX. Когда пользователь вводит команды в CTSS, они передаются супервизору (ядру), а не какой-либо программе, похожей на оболочку UNIX. Пользователи не могут вводить команды в RUNCOM, он обрабатывает файлы на диске. Файлы CTSS имеют имя и второе имя, разделенные пробелами, например FOO BCD .
Описание РУНКОМ
Цепочки команд RUNCOM, также известные как макрокоманды (оба термина означают сценарии), представляют собой файлы со вторым именем RUNCOM или BCD, которые содержат ноль или более строк. Строки в сценарии представляют собой либо пустые строки, комментарии, обычные команды (такие, которые можно ввести в командной строке супервизора), либо псевдокоманду (команда, встроенная только в RUNCOM) CHAIN.
Комментарии начинаются с любого $
или *
в качестве первого символа строки. Комментарии с использованием $
печатаются (включая $
), когда RUNCOM запускается, пока те с *
не печатаются вообще. Подмены параметров в комментариях не происходит.
Когда пользователь вызывает RUNCOM, его аргументы (параметры) сначала должны начинаться с имени файла, содержащего сценарий. Если пользователь вызывает RUNCOM без каких-либо аргументов, он печатает некоторые инструкции о том, как его использовать, и останавливается, возвращая пользователя в командную строку супервизора (системы). Остальные аргументы, если таковые имеются, представляют собой либо имена команд, значения, которые будут использоваться в качестве аргументов в сценарии, либо строки (NIL) или (END), включая круглые скобки.
В сценарии CHAIN присваивает имена аргументам, которые использовались в командной строке при вызове RUNCOM, например, добавление CHAIN LALA FAFA в сценарий и вызов RUNCOM XYZZY 3 приведет к замене LALA в сценарии на 3 при его использовании. во всех строках, следующих после CHAIN, в то время как FAFA останется FAFA, поскольку RUNCOM был вызван без указания чего-либо для него.
Если аргумент RUNCOM равен (NIL), позиционный параметр, обозначенный в сценарии как аргумент CHAIN, будет преобразован в ничто, например CHAIN ALPHA BETA GAMMA в сочетании с RUNCOM A (NIL) B приведет к замене ALPHA на A и GAMMA на B, а BETA будет удалено из любой команды, следующей за CHAIN в сценарии.
Если аргумент RUNCOM равен (END), соответствующий CHAIN
аргумент будет рассматриваться как (NIL), и все последующие аргументы также будут обрабатываться как (NIL).
Любой параметр для CHAIN
может использоваться в качестве имени команды в скрипте, т.е. может идти первым перед любыми аргументами. Примером может быть RUNCOM SCRIPT LISTF
в сочетании с CHAIN CMD
за которым следует CMD в начале следующей строки. CMD будет заменен на LISTF
который будет перечислять файлы в каталоге (например, Unix ls
команда).
После завершения замен RUNCOM отправляет команды в подпрограмму библиотеки SCHAIN, которая доступна и другим программам. [1]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Jump up to: а б Грисман, Пенсильвания, изд. (1969). Совместимая система разделения времени. Руководство программиста, 2-е изд . Бостон: MIT Press. п. 525.
- ^ Пузен, Луи (25 ноября 2000 г.). «Происхождение ракушки» . Мультицианцы . Проверено 31 июля 2017 г.
- ^ Пузен, Луи (2 апреля 1965 г.). SHELL: глобальный инструмент для вызова и объединения процедур в системе (PDF) (отчет). Проект MAC Массачусетского технологического института. МДН-4 . Проверено 9 апреля 2022 г.
- ^ Пузен, Луи (7 апреля 1965 г.). RUNCOM - Процессор макропроцедур для системы 636 (PDF) (Отчет). Проект MAC Массачусетского технологического института. МДН-4 . Проверено 9 апреля 2022 г.
- ^ «Что в Unix означают некоторые непонятно названные команды?» . База знаний ИТ . Университет Индианы . Проверено 20 апреля 2009 г.
- ^ «Юникс и мультики» . Проверено 20 апреля 2009 г.