Введение

Язык управления (англ. Control Language, CL) — язык сценариев, первоначально разработанный IBM для System/38 Control Program Facility, а затем использованный в OS/400 (ныне известный как IBM i). Он имеет сходство с языком управления заданиями IBM (IBM Job Control Language) и состоит из набора командных объектов (*CMD), используемых для вызова традиционных программ или получения справки о них. CL также может использоваться для создания программ на CL (аналогичных скриптам оболочки), содержащих дополнительные команды, обеспечивающие функциональность, характерную для программ (IF/ELSE, объявление переменных, ввод из файла и т. д.). Хотя CL является языком сценариев для системного администрирования, он в основном используется для создания компилируемых программ. Использование интерпретируемых скриптов CL через команду SBMDBJOB фактически крайне ограничено. Разработчиками IBM было создано множество команд для выполнения системных задач, таких как компиляция программ, резервное копирование данных, изменение конфигурации системы, отображение информации об объектах системы или их удаление, однако команды не ограничиваются системными задачами и могут быть разработаны и для пользовательских приложений.

Команды и программы

Параметры (аргументы командной строки), определенные в основных процедурах всех традиционных программ System/38 и AS/400, представляют собой жестко заданные списки, состоящие из параметров, которые могут быть числовыми, буквенно-цифровыми, логическими и т. д., и порядок передачи параметров имеет значение. Это принципиальное отличие от сред Unix и DOS, где список параметров в скриптах оболочки Unix и программах на C является набором или массивом указателей на символы, и параметры, как правило, не зависят от позиции. Решением этой проблемы, предложенным разработчиками, стал командный объект (*CMD). Хотя параметры команды могут быть указаны в любом порядке, каждый параметр определяется для передачи в программу в определенной последовательности. Программист также может определить, помимо прочего, тип данных параметра, уникальное имя параметра, пояснительный текст (для подсказки), значение по умолчанию (которое используется только в том случае, если параметр не указан при выполнении), ограничение значений определенным набором или диапазоном, необходимость преобразования введенных данных перед вызовом программы и т. д. В своей простейшей форме команда указывает единственную программу для вызова, когда пользователь вводит или выбирает команду и нажимает клавишу Enter. Команда принимает все параметры, введенные пользователем, а также те, которые не были введены, и формирует список параметров, который передается программе при ее вызове.

Подсказка

Все команды CL могут быть вызваны непосредственно из командной строки или из исходного кода программы CL, введя команду и нажав клавишу F4. Команду OS/400 также можно вызвать, набрав знак вопроса (?) перед командой. (Это полезно в интерактивной программе, которая предлагает командную строку, предварительно заполнив некоторые значения.) Система затем отобразит экран с набором параметров, которые программа принимает или требует (обязательные параметры обычно выделены). Обязательные параметры перечисляются первыми, а параметры со значениями по умолчанию, заданными системой, – последними. Чтобы увидеть все параметры, нажмите F10. Если для какого-либо выбора требуются дополнительные параметры, они будут предложены при выборе значения для данного параметра и отобразятся на экране. Механизм запроса параметров дополнительно улучшен, чтобы программист мог узнать допустимые значения для каждого параметра. Для этого во время запроса параметров пользователь должен переместить курсор в поле параметра и снова нажать F4. Система отобразит экран с описанием типа требуемого ввода и списком допустимых значений. Чтобы ввести более длинное имя или расширить список для ввода дополнительных значений, введите знак плюса (+) вместо значения. (Как при перечислении имен объектов для сохранения или восстановления.)

Помощь командования

Помощь, зависящая от положения курсора, также может быть доступна для команд, но это не является обязательным. Если справка предусмотрена, можно просмотреть справку по конкретному параметру, переместив курсор в поле этого параметра и нажав F1 (справка). Чтобы получить справку по всей команде (и всем её параметрам), пользователь должен нажать F1 в любом месте строки приглашения, а затем F2 (расширенная справка).

Найти правильную команду

В V7R3 содержится 2262 встроенных команд IBM, однако найти их не так уж и сложно благодаря ряду особенностей системы, упрощающих работу. К этим особенностям, облегчающим труд, относятся: стандартизированные сокращения, меню группировки команд и функция выбора команд.

Стандартные сокращения

Разработчики IBM стандартизировали сокращения, используемые при создании имен команд. Глаголы, такие как "change" (изменить), всегда отображаются как CHG, "display" (отобразить) – как DSP, "work" (работать) – как WRK, "create" (создать) – как CRT и т. д. Объекты, такие как "program" (программа), всегда обозначаются как PGM, "user" (пользователь) – как USR, "module" (модуль) – как MOD, "server" (сервер) – как SVR и т. д. Все возможные глаголы и объекты, используемые в системе, можно найти в меню VERB и SUBJECT, просто введите команды GO VERB или GO SUBJECT. Аналогично, "Control Language Programming" сокращалось до CLP, и тип исходного кода соответственно был CLP. С появлением модели программирования ILE тип исходного кода был изменен на "CLLE".

Меню группировки команд

Меню VERB и SUBJECT являются частью так называемых меню группировки команд. Для каждой трех- или четырехбуквенной аббревиатуры существует отдельное меню, начинающееся с букв CMD. Чтобы увидеть все команды CHG, пользователь должен ввести команду GO CMDCHG. Для программных команд используется меню CMDPGM. Помимо меню группировки команд существуют и другие меню. Доступ к начальной точке системы меню можно получить, нажав F4 на пустой командной строке.

Выбор команды

Если вы знаете только часть команды или используете стороннее программное обеспечение, в котором команды не соответствуют стандарту сокращений AS/400, введите известную часть команды, добавьте звездочку (чтобы сделать запрос обобщенным) и нажмите Enter. Система отобразит список команд из библиотек задания, соответствующих введенному обобщенному имени. Затем можно просмотреть список, найти нужную команду и выбрать ее с помощью опции 1. В фоновом режиме система использует команду SLTCMD для выполнения этой функции. Если вы хотите выбрать все команды в библиотеке, вызовите эту команду и введите специальное значение *ALL.