ошибки.
90
АПК 00210-01 33 01-4
wait Происходит ожидание всех порожденных процессов.
В интерактивном режиме сигнал прерывания может
прервать и выполнение команды wait.При этом csh
печатает имена и номера всех незавершенных про-
цессов.
@
@имя=выражение
@имя[индекс]=выражение
Первая форма распечатывает значения всех пере-
менных csh. Вторая форма присваивает параметру
"имя" значение "выражения". Если часть выражения
содержит символы "<", ">", "&" или "|", то она
должна быть заключена в круглые скобки (...).
Третья форма присваивает компоненту"имя" с номе-
ром "индекс" значение "выражения". "Имя" и его
компонент с номером "индекс" должны существо-
вать.
ВНУТРЕННИЕ ПЕРЕМЕННЫЕ:
argv Определяет значения параметров csh. К ней приме-
нимы подстановки позиционных параметров (напри-
мер, "$1" заменяется на "$argv[1]").
child Номер процесса.Выводится при запуске параллель-
ного процесса. По завершении процесса значение
переменной сбрасывается (unset).
echo Устанавливается, если в командной строке указы-
91
АПК 00210-01 33 01-4
вается флаг "-х". Вызывает печать каждой команды
и ее параметров перед выполнением. Все расшире-
ния выполняются перед выводом.
history
Определяет размер списка предшествующих команд.
Слишком большое значение переменной может при-
вести к нехватке памяти. Оптимальное число - 22
строки.
home Определяет имя регистрационного справочника
пользователя.
ignoreeof
Предотвращает случайное завершение csh при при-
еме сигнала "конец файла" <CTRL/D>.
mail Содержит имена файлов, которые проверяются ин-
терпретатором csh на наличие почты после завер-
шения каждой команды.
noclobber
Устанавливает защиту файлов от случайного разру-
шения и обеспечивает существование файлов вывода
при использовании конструкции ">>".
noglob
Запрещает расширение имен файлов.
nonomatch
Если расширение имен файлов не соответствует ни
92
АПК 00210-01 33 01-4
одному из существующих файлов, то при установке
данной переменной возвращается исходный образец.
Однако, если исходный образец неверен (например,
"есно ["), то возникает ошибка.
path Определяет список имен справочников для поиска
выполняемых команд.
prompt
Определяет строку-приглашение интерпретатора для
ввода команд. Если в этой строке присутствует
указатель "!", которому не предшествует символ
"
Стандартными значениями являются "%" - для обыч-
ного пользователя и "#" - для суперпользователя.
shell Если командный файл является выполняемым (имеет-
ся бит "x") и начинается с символа "#", то он
выполняется интерпретатором csh.Если символ "#"
отсутствует - интерпретатором sh. Переменная
shell определяет файл, который должен выполнять
интерпретатор csh.
status
Определяет код завершения последней команды (0 -
при успешном выполнении команды, 1 - при неус-
пешном).
time Хронометрирует команды, если их действие продол-
жалось более указанного времени.
93
АПК 00210-01 33 01-4
verbose
Устанавливается флагом "-v" и вызывает распечат-
ку каждой командной строки перед ее выполнением.
ФЛАГИ CSH:
-c Считать команду из единственного параметра, ука-
занного сразу после "-c". Все остальные
параметры размещаются в переменной argv;
-e Прекратить работу csh, если любая вызванная ко-
манда выполнена неуспешно или если код заверше-
ния команды не равен нулю;
-f Запретить чтение файла ".cshrc" для обеспечения
более быстрого запуска интерпретатора csh;
-i Устанавливает интерактивный режим работы ин-
терпретатора;
-n Осуществляет только синтаксическую проверку
команд;
-s Считывать входную информацию из стандартного
файла ввода;
-t Считывать и выполнять только одну командную
строку. Эта строка может содержать в конце
символ продолжения строки "
-v Вызывает установку переменной verbose, в резуль-
тате чего вводимые команды распечатываются после
94
АПК 00210-01 33 01-4
подстановки предшествующих команд;
-V Вызывает установку переменной verbose перед вы-
полнением файла ".cshrc";
-x Вызывает распечатку команд перед их выполнением;
-X Устанавливает флаг "-x" при интерпретации файла
".cshrc".
ОБРАБОТКА СИГНАЛОВ:
Интерпретатор команд обычно игнорирует сигналы выхода
(quit). Команды, выполняемые в фоновом режиме, обычно
игнорируют сигналы прерывания (interrupt) и выхода. В
обычном режиме эти сигналы имеют значения, наследуемые
от предыдущего процесса. Реакция csh на прерывания
может устанавливаться командой onintr. Интерпретаторы,
устанавливаемые непосредственно при регистрации поль-
зователя в системе, воспринимают сигнал завершения
(terminate); в остальных случаях состояние сигнала
прерывания передается из текущего процесса в порожда-
емый. Во время считывания файла ".logout", сигналы
прерывания не воспринимаются.
ФАЙЛЫ:
^/.cshrc считывается csh в начале
выполнения.
^/.login считывается csh после ".cshrc"
при регистрации.
^/.logout считывается csh при выходе.
95
АПК 00210-01 33 01-4
/bin/sh стандартный shell для командных
файлов, которые начинаются не с
"#".
/tmp/sh* временный файл для "<<".
/dev/null источник для пустого файла.
/etc/passwd регистрационный справочник для
"^имя".
ОГРАНИЧЕНИЯ:
Слова не могут быть длинее, чем 512 символов. Коли-
чество символов в параметрах зависит от системы.
Предел составляет от 512 до 5120 символов. Количество
параметров команды, включающих расширения имен файлов,
ограничено 1/6-ой числа символов, разрешенных в списке
параметров. При подстановке команд количество подстав-
ляемых символов не должно превышать числа, указанного
в списке параметров. Для предотвращения зацикливания
csh ограничивает количество подстановок псевдонимов в
одной строке до 20-ти.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
sh, environ.
ЗАМЕЧАНИЯ:
Команды управления должны подвергаться грамматическому
разбору, а не распознаваться в качестве встроенных
команд. Это позволило бы размещать их в любом месте,
об'единять с помощью символа "|", а также использовать
с метаобозначениями "&" и ";".
96
АПК 00210-01 33 01-4
Команды, содержащиеся внутри циклов с подсказкой "?",
не помещаются в список предшествующих команд.
Должна существовать возможность использования модифи-
каторов ":" при выводе подстановок команд. В макровы-
зовах "$" должно допускаться более одного модификатора
":".
Некоторые команды не должны изменять значения перемен-
ной status, иначе она будет так часто меняться, что
может оказаться почти бесполезной. Установка бита 0200
в переменной status при ненормальном завершении свиде-
тельствует об ошибке.
Чтобы сохранить возможность восстановления после не-
удачного выполнения команд ехес, новая команда насле-
дует несколько открытых файлов, отличных от стан-
дартных файлов ввода, вывода и диагностических сообще-
ний. Если файлы ввода/вывода заданы и новая команда не
закрывает их, то некоторые файлы напрасно остаются
открытыми.
97
АПК 00210-01 33 01-4
ИМЯ:
ctags - построение файла ссылок для программ на Си
ФОРМАТ:
ctags [-auw] файл ...
ОПИСАНИЕ:
Команда ctags создает таблицу ссылок (файл с именем
tags) для программ на языке Си, записанных в указанных
файлах. Файл ссылок содержит указания о местонахожде-
нии определенных об'ектов (в данном случае - функций)
в группе файлов. Каждая строка файла ссылок содержит:
имя функции, имя файла (в котором она определена), ре-
гулярное выражение, используемое для поиска определе-
ния функции. Эти данные приводятся в отдельных полях
строки и разделяются пробелами или символами табуля-
ции.
В командной строке могут указываться следующие ключи:
-a Приводит к тому, что результат дописывается в
файл tags;
-x В этом режиме ctags выдает для каждой функции ее
имя, номер строки в которой она определена, имя
файла и содержимое строки с определением данной
функции. Результат выдается в стандартный файл
вывода;
-v Получение списка имен функций с указанием стра-
ниц на которых они определены (предполагается,
98
АПК 00210-01 33 01-4
что страница содержит 64 строки);
-u Вызывает обновление признаков для указанных
файлов, т.е. все ссылки на них удаляются, и к
файлу добавляются новые значения. Подразумевает-
ся задание ключа "-a";
-w Подавляет предупредительную диагностику.
Имя головной программы (main) обрабатывается особым
образом. Вместо имени функции создается некоторое ус-
ловное имя, которое формируется путем добавления "M" к
имени файла и удаления суффикса ".c", если он имеется,
а также удаления первых компонентoв полного имени. Это
позволяет использовать ctags в каталогах с более, чем
одной программой.
ФАЙЛЫ:
tags выходной файл ссылок.
99
АПК 00210-01 33 01-4
ИМЯ:
date - печать даты.
ФОРМАТ :
date
ОПИСАНИЕ:
Выдается текущая дата и время в виде ггммддччмм. Поле
"гг" задает последние две цифры года, "мм" - месяц,
"дд" - день, "чч" - час (по 24-часовой системе), вто-
рое "мм" задает минуты.
ФАЙЛЫ
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
utmp
100
АПК 00210-01 33 01-4
ИМЯ:
dc - настольный калькулятор.
ФОРМАТ:
dc [файл]
ОПИСАНИЕ:
Представляет собой пакет для выполнения арифметических
операций с произвольной точностью. Обычно он оперирует
с десятичными целыми числами, однако можно задавать
входное и выходное основания системы счисления и коли-
чество обрабатываемых дробных цифр. С точки зрения об-
щей структуры dc представляет собой стековый калькуля-
тор (с использованием обратной польской записи). Если
задан параметр, ввод осуществляется из указанного
файла (до тех пор, пока он не закончится), а затем -
из стандартного файла ввода. Распознаются следующие
конструкции:
число значение числа помещается в стек. Число
представляет собой непрерывную строку цифр 0-9.
Ему может предшествовать символ подчеркивания
"_", который служит для ввода отрицательных
чисел. Числа могут содержать десятичную точку;
+ - / * % ^
Два верхних значения стека складываются (+), вы-
читаются (-), умножаются (*), делятся (/), опре-
деляется остаток (%) или возводятся в степень
(^). Два этих значения выталкиваются из стека;
101
АПК 00210-01 33 01-4
на их место в стеке помещается результат. Дроб-
ная часть в показателе стека игнорируется;
sx Вершина стека извлекается и запоминается в ре-
гистре с именем "x", где в качестве "x" может
использоваться любой символ. Если буква S заг-
лавная, "x" рассматривается как стек, и в него
помещается данное значение;
lx Значение регистра "x" помещается в стек. Содер-
жимое регистра "x" не изменяется. Начальные зна-
чения всех регистров нулевые. Если буква L заг-
лавная, регистр "x" рассматривается как стек, и
его верхнее значение помещается в основной стек;
d Верхнее значение стека удваивается;
p Верхнее значение стека распечатывается. Верхнее
значение остается неизменным. "P" рассматривает
вершину стека как строку символов КОИ-8, удаляет
и распечатывает эту строку;
f Распечатываются все значения, находящиеся в сте-
ке и в регистрах;
q Производится выход из программы. При выполнении
строки уровень рекурсии уменьшается на два. Если
буква Q заглавная, из стека извлекается верхнее
значение и уровень выполнения строки Изменяется
на это значение;
102
АПК 00210-01 33 01-4
x Рассматривает верхний элемент стека как строку
символов и выполняет ее как строку команд dc;
X Заменяет число в вершине стека на его масштабный
множитель;
[...] Помещает строку символов КОИ-8 в скобках в вер-
шину стека;
<x >x =x
Верхние два элемента стека извлекаются и сравни-
ваются. Если они удовлетворяют указанному отно-
шению, выполняется регистр "x";
v Заменяет верхний элемент стека его квадратным
корнем. Существующая дробная часть параметра
учитывается, иначе масштабный множитель игнори-
руется;
! Остальная часть строки рассматривается как ко-
манда системы ДЕМОС;
c Из стека извлекаются все значения;
i Верхнее значение стека извлекается и использует-
ся в качестве основания чисел для последующего
ввода. Заглавное I помещает в вершину стека
входное основание;
o Верхнее значение стека извлекается и использует-
ся в качестве основания чисел для последующего
вывода. Заглавное O помещает в вершину стека вы-
103
АПК 00210-01 33 01-4
ходное основание;
k Извлекается верхнее значение стека, которое ис-
пользуется в качестве неотрицательного масштаб-
ного множителя: соответствующее количество пози-
ций печатается при выводе и обрабатывается при
умножении, делении и возведении в степень. Вза-
имовлияние масштабного множителя, входного осно-
вания и выходного основания будут иметь смысл,
если все они изменяются одновременно;
z Уровень стека помещается в стек. Заглавное Z за-
меняет число в вершине стека его длиной;
? Из источника ввода (обычно терминал) вводится и
выполняется входная строка;
; : Используется командой bc для операций с массива-
ми.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
bc - препроцессор для dc, обеспечивающий инфиксное
представление и напоминающий язык Си, синтаксис кото-
рого реализует функции и удобные структуры управления
для программ.
Имеется отдельное описание dc.
ДИАГНОСТИКА:
"x is unimplemented" ("x не помещается"), где x -
восьмеричное число.
104
АПК 00210-01 33 01-4
"stack empty" ("стек пуст"), если в стеке недостаточно
элементов для выполнения требуемых функций.
"out of space" ("не хватает места"), когда исчерпан
список свободного пространства (слишком много цифр).
"out of headers" ("не хватает заголовков"), когда од-
новременно обрабатывается слишком много чисел.
"out of pushdown" ("исчерпан стек"), если в стеке
слишком много элементов.
"Nesting Depth" ("глубина вложения"), если слишком
много уровней вложенного выполнения.
105
АПК 00210-01 33 01-4
ИМЯ:
dcon - отладчик
ФОРМАТ:
dcon файл [ имя списка ]
ОПИСАНИЕ:
Dcon является отладчиком ДЕМОС. Команда позволяет как
проверять содержимое файлов, так и динамически тести-
ровать программу. Обычно, когда используется операнд
"файл", проверяется файл или программа (выходной фор-
мати производится дамп памяти с ошибкой или распечатка
нужного файла (находящегося, например на диске).
"Имя списка" - используется, если файл содержит сим-
вольную таблицу. Если этот операнд отсутствует, табли-
ца символов выбирается из самого файла, имя которого
использовано в команде. Если нет возможности найти
список имен, dcon может быть использована, но уже без
возможности работы с символьными данными.
Далее приводится краткое описание вариантов использо-
вания команд dcon. Большинство команд dcon включают
адреса операндов и режимы печати. Адреса выражений,
которые могут быть использованы, приведены ниже:
source_name
адрес имени-источника (source_name), определен-
ного в программе;
;r0...;r15
106
АПК 00210-01 33 01-4
просмотр регистров с 0 по 15;
;fr0...;fr6
просмотр содержимого регистров с плавающей
точкой 0,2,4,6;
local_name
имя отладчика, начинается с "#";
number
восьмеричный, десятичный, шестнадцатеричный
номер использования "С" вводного формата (Оn, n,
Oxn);
. размещение наиболее "свежих" результатов тести-
рования;
.. размещение текущей команды;
$ конец файла;
expr обычное выражение, исключающее использование
"//" в качестве разделителя;
name=expr
об'ем памяти для expr;
function:variable
относится к локальной переменной (variable) в
функции (function);
*expr косвенное выражение через expr;
107
АПК 00210-01 33 01-4
enter(name)
начало имени функции;
exit(name)
конец имени функции;
Содержимое адресов, представленных в выражениях, выво-
дится согласно следующим режимам. Режим вывода специ-
фицируется двумя параметрами: длиной символов и формой
представления.
Длины могут быть представлены в виде:
-b для адресуемого байта;
-h для адресуемого полуслова;
-w для адресуемого слова;
-l для адресуемого двойного слова;
-a для адреса самого выражения.
Режимы вывода:
-d для десятичных данных;
-o для восьмеричных данных;
-x для шестнадцатеричных данных;
-c для символьных данных;
-s для строки символов (не указателей);
108
АПК 00210-01 33 01-4
-i для мнемоники команды;
-ix для режимов i и x;
-v для символов, значение которых связано с адре-
сом.
Могут быть также следующие варианты:
(new-line)
выводит ".+длина печати";
expr1,expr2[print-option]
печатает размещение выражений от expr1 до expr2;
+expr[print-option]
выводит ".+выражение";
-expr[print-option]
выводит ".-выражение";
?[print-option]
выводит "след" стока;
*[print-option]
выводит '*';
;psw[print-option]
выводит psw;
!ДЕМОС-command
посылает команды ДЕМОС интертритатору shell;
{command_list}
109
АПК 00210-01 33 01-4
список команд;
;if(expr)command
если выражение имеет ненулевое значение, command
выполняется;
;bp expr[command_command][/*comment]
точка прерывания в выражении;
;macro name(arg)command
определяет локальное имя макроопределения, кото-
рое, когда используется, подставляет значение
аргумента (arg);
;go [arg1 arg2...]
начинает выполнение программы, используя указан-
ные аргументы;
;cont [expr]
продолжает выполнение выражения (expr);
;brks выводит текущие точки прерывания;
;clr [expr]
расставляет точки прерывания в выражении;
;quit эквивалентно ЕОТ (выйти из отладчика);
;do file
взять команды из файла "file";
;out [file]
начать косвенный вывод файла "file";
110
АПК 00210-01 33 01-4
;save [expr][/*comment]
осуществляет непрерывное изменениe выражения.
Если выражение не специфицировано, все изменения
происходят непрерывно. Изменения, дата, время,
имя модификации записываются в файл file.cmt.
;rst [expr]
сохраняет значение в expr относительно его зна-
чений на входе команды dcon. Если expr не указа-
но, сохраняется размещение изменений;
;copy file
подобно ;save исключает сохранение изменяемого
файла в file;
;ss [n[command]]
один шаг программы, где "n" -номер команды,
после которой необходимо остановить программу.
111
АПК 00210-01 33 01-4
ИМЯ:
dd - преобразовать и скопировать файл.
ФОРМАТ:
dd [ключ = значение] ...
ОПИСАНИЕ:
Команда dd копирует заданный входной файл в заданный
выходной файл с возможными преобразованиями. По умол-
чанию используются стандартный файл ввода и стан-
дартный файл вывода. Может быть задан размер блока при
вводе и выводе, чтобы использовать преимущества прямо-
го физического ввода-вывода.
Параметр значение
if= Имя входного файла (по умолчанию - стандартный
файл ввода).
of= Имя выходного файла (по умолчанию - стандартный
файл вывода).
ibs=n
Устанавливает размер блока при вводе равным n байт
.
obs=n
Устанавливает размер блока при выводе равным n
байт .
bs=n
Устанавливает размер блока как для ввода, так и
112
АПК 00210-01 33 01-4
для вывода, отменяя ibs и obs. Особенно эффекти-
вен, если не задано преобразование (не требуется
создание копии).
cbs=n
Размер буфера преобразования.
skip=n
Пропускает n входных записей перед началом копиро-
вания.
files=n
Пропускает n входных файлов перед началом копиро-
вания.
seek=n
Пропускает n записей от начала выходного файла
перед копированием.
count=n
Копирует только n входных записей.
conv=ascii
Выполняет преобразование из кода ДКОИ в код КОИ-8.
conv=ebcdic
Выполняет преобразование из кода КОИ-8 в код ДКОИ.
conv=ibm
Несколько отличающееся преобразование КОИ-8 в
ДКОИ.
113
АПК 00210-01 33 01-4
conv=lcase
Преобразует алфавитные символы в нижний регистр.
conv=ucase
Преобразует алфавитные символы в верхний регистр.
conv=swab
Переставляет каждую пару байтов.
conv=noerror
Не прекращает обработку при обнаружении ошибки
чтения.
conv=sync
Дополняет каждую входную запись до размера ibs.
conv=...,...
Несколько преобразований, разделенных запятой.
Там, где определяются размеры, предполагается указание
числа байтов. Число может оканчиваться символами "k",
"b" или "w", что означает умножение на 1024,4096 или 2
соответственно.Для обозначения произведения пара чисел
может разделяться символом "x".
Параметр "cbs=n" используется только тогда, когда за-
даны преобразования ascii или ebcdic. В первом случае
cbs символов помещаются в буфер преобразования, преоб-
разуются в код КОИ-8 и перед помещением этой строки в
выходной файл заключительные пробелы отбрасываются и
добавляется символ новой строки. Во втором случае сим-
114
АПК 00210-01 33 01-4
волы КОИ-8 считываются в буфер преобразования, преоб-
разуются в код ДКОИ и дополняются пробелами, чтобы по-
лучить выходную запись размером cbs.
После завершения dd сообщает количество полных и не-
полных введенных и выведенных блоков.
ПРИМЕР:
Следующая команда переписывает ленту ДКОИ, которая со-
держит по десять 80-байтных образов карт ДКОИ в блоке,
в файл с именем x:
dd if=/dev/mt580 of=х ibs=800 cbs=80 conv=ascii,lcase
Обратите внимание на использование небуферизированного
обмена с магнитной лентой (rmt). Команда dd особеннно
подходит для небуферизированного ввода-вывода, так как
позволяет считывать и записывать записи произвольного
размера.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
cp, tr
ДИАГНОСТИКА:
"f+p records in (out)" ("f+p записей введено (выведе-
но)"): количество полных и неполных считанных (запи-
санных) записей.
ЗАМЕЧАНИЯ:
Символы новой строки вставляются только при преобразо-
вании в код КОИ-8.Дополнение выполняется только при
115
АПК 00210-01 33 01-4
преобразовании в код ДКОИ. Это следовало бы сделать
отдельными параметрами.
116
АПК 00210-01 33 01-4
ИМЯ:
ddutok - перекодировка из кода "u-cod" МНОС.
ФОРМАТ:
ddutok файл ...
ОПИСАНИЕ :
Команда ddutok последовательно перекодирует каждый
"файл" из кода "u-cod" и записывает результат под
прежним именем. Команда работает таким образом, что
файлы, содержащие нетекстовые символы или не содержа-
щие русских букв остаются неизмененными.
"u-cod" - это нестандартная кодировка, отличающаяся от
КОИ-8 тем, что русские буквы упорядочены по алфавиту,
строчные буквы начинаются с кода 0340, прописные -
0300.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
dd
117
АПК 00210-01 33 01-4
ИМЯ
demsend - перфорация данных для системы ДЕМОС.
ОПИСАНИЕ
demsend называется загрузочный модуль программы на
языке pl/1. Результатом выполнения этой программы в
среде ОС ЕС или ПДО является перфорация файла вирту-
альным перфокарточным устройством вывода с направлени-
ем перфорации на виртуальный перфокарточный ввод ВМ
ДЕМОС. Чтение с перфокарточного ввода и размещение в
файле ДЕМОС перфорированных данных выполняет утилита
vmread. Управляющие параметры программы dемsend запи-
сываются в поле РАRМ оператора EXEC и имеют состав
аналогичный составу заголовка утилиты vmread:
/modes; userid; destfile.
Где
modes поле управляющих ключей vmread;
userid
имя пользователя ДЕМОС
destfile
имя файла ДЕМОС
Следующий пример показывает операторы ЯУЗ ОС ЕС для
выполнения программы demsend:
//name job ...
118
АПК 00210-01 33 01-4
//*route punch mode.dem
//senddem exec pgm=demsend,parm='/s;petr1;blah'
//steplib dd dsn=engtools.public.load,disp=shr
//in dd dsn=petr1.test.blah,disp=old,dcb=(...)
//out dd dcb=(recfm=fb,lrecl=80,blksize=80),
// sysout=b
Для получения эффекта работы программы demsend в среде
системы ПДО имеется файл ПДО названия demsend module и
командная процедура demsend exec, обеспечивающие поль-
зовательский интерфейс с перфорацией.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ
vmread, send
119
АПК 00210-01 33 01-4
ИМЯ:
deroff - удалить конструкции pif, troff, tbl и eqn.
ФОРМАТ:
deroff [-w] файл ...
ОПИСАНИЕ:
Команда deroff поочередно считывает каждый файл и уда-
ляет все командные строки pif, troff, конструкции с
обратной косой чертой, макроопределения, конструкции
eqn (между строками ".eq" и ".en" или между ограничи-
телями), а также описания таблиц, и записывает остаток
90
АПК 00210-01 33 01-4
wait Происходит ожидание всех порожденных процессов.
В интерактивном режиме сигнал прерывания может
прервать и выполнение команды wait.При этом csh
печатает имена и номера всех незавершенных про-
цессов.
@
@имя=выражение
@имя[индекс]=выражение
Первая форма распечатывает значения всех пере-
менных csh. Вторая форма присваивает параметру
"имя" значение "выражения". Если часть выражения
содержит символы "<", ">", "&" или "|", то она
должна быть заключена в круглые скобки (...).
Третья форма присваивает компоненту"имя" с номе-
ром "индекс" значение "выражения". "Имя" и его
компонент с номером "индекс" должны существо-
вать.
ВНУТРЕННИЕ ПЕРЕМЕННЫЕ:
argv Определяет значения параметров csh. К ней приме-
нимы подстановки позиционных параметров (напри-
мер, "$1" заменяется на "$argv[1]").
child Номер процесса.Выводится при запуске параллель-
ного процесса. По завершении процесса значение
переменной сбрасывается (unset).
echo Устанавливается, если в командной строке указы-
91
АПК 00210-01 33 01-4
вается флаг "-х". Вызывает печать каждой команды
и ее параметров перед выполнением. Все расшире-
ния выполняются перед выводом.
history
Определяет размер списка предшествующих команд.
Слишком большое значение переменной может при-
вести к нехватке памяти. Оптимальное число - 22
строки.
home Определяет имя регистрационного справочника
пользователя.
ignoreeof
Предотвращает случайное завершение csh при при-
еме сигнала "конец файла" <CTRL/D>.
mail Содержит имена файлов, которые проверяются ин-
терпретатором csh на наличие почты после завер-
шения каждой команды.
noclobber
Устанавливает защиту файлов от случайного разру-
шения и обеспечивает существование файлов вывода
при использовании конструкции ">>".
noglob
Запрещает расширение имен файлов.
nonomatch
Если расширение имен файлов не соответствует ни
92
АПК 00210-01 33 01-4
одному из существующих файлов, то при установке
данной переменной возвращается исходный образец.
Однако, если исходный образец неверен (например,
"есно ["), то возникает ошибка.
path Определяет список имен справочников для поиска
выполняемых команд.
prompt
Определяет строку-приглашение интерпретатора для
ввода команд. Если в этой строке присутствует
указатель "!", которому не предшествует символ
"
Стандартными значениями являются "%" - для обыч-
ного пользователя и "#" - для суперпользователя.
shell Если командный файл является выполняемым (имеет-
ся бит "x") и начинается с символа "#", то он
выполняется интерпретатором csh.Если символ "#"
отсутствует - интерпретатором sh. Переменная
shell определяет файл, который должен выполнять
интерпретатор csh.
status
Определяет код завершения последней команды (0 -
при успешном выполнении команды, 1 - при неус-
пешном).
time Хронометрирует команды, если их действие продол-
жалось более указанного времени.
93
АПК 00210-01 33 01-4
verbose
Устанавливается флагом "-v" и вызывает распечат-
ку каждой командной строки перед ее выполнением.
ФЛАГИ CSH:
-c Считать команду из единственного параметра, ука-
занного сразу после "-c". Все остальные
параметры размещаются в переменной argv;
-e Прекратить работу csh, если любая вызванная ко-
манда выполнена неуспешно или если код заверше-
ния команды не равен нулю;
-f Запретить чтение файла ".cshrc" для обеспечения
более быстрого запуска интерпретатора csh;
-i Устанавливает интерактивный режим работы ин-
терпретатора;
-n Осуществляет только синтаксическую проверку
команд;
-s Считывать входную информацию из стандартного
файла ввода;
-t Считывать и выполнять только одну командную
строку. Эта строка может содержать в конце
символ продолжения строки "
-v Вызывает установку переменной verbose, в резуль-
тате чего вводимые команды распечатываются после
94
АПК 00210-01 33 01-4
подстановки предшествующих команд;
-V Вызывает установку переменной verbose перед вы-
полнением файла ".cshrc";
-x Вызывает распечатку команд перед их выполнением;
-X Устанавливает флаг "-x" при интерпретации файла
".cshrc".
ОБРАБОТКА СИГНАЛОВ:
Интерпретатор команд обычно игнорирует сигналы выхода
(quit). Команды, выполняемые в фоновом режиме, обычно
игнорируют сигналы прерывания (interrupt) и выхода. В
обычном режиме эти сигналы имеют значения, наследуемые
от предыдущего процесса. Реакция csh на прерывания
может устанавливаться командой onintr. Интерпретаторы,
устанавливаемые непосредственно при регистрации поль-
зователя в системе, воспринимают сигнал завершения
(terminate); в остальных случаях состояние сигнала
прерывания передается из текущего процесса в порожда-
емый. Во время считывания файла ".logout", сигналы
прерывания не воспринимаются.
ФАЙЛЫ:
^/.cshrc считывается csh в начале
выполнения.
^/.login считывается csh после ".cshrc"
при регистрации.
^/.logout считывается csh при выходе.
95
АПК 00210-01 33 01-4
/bin/sh стандартный shell для командных
файлов, которые начинаются не с
"#".
/tmp/sh* временный файл для "<<".
/dev/null источник для пустого файла.
/etc/passwd регистрационный справочник для
"^имя".
ОГРАНИЧЕНИЯ:
Слова не могут быть длинее, чем 512 символов. Коли-
чество символов в параметрах зависит от системы.
Предел составляет от 512 до 5120 символов. Количество
параметров команды, включающих расширения имен файлов,
ограничено 1/6-ой числа символов, разрешенных в списке
параметров. При подстановке команд количество подстав-
ляемых символов не должно превышать числа, указанного
в списке параметров. Для предотвращения зацикливания
csh ограничивает количество подстановок псевдонимов в
одной строке до 20-ти.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
sh, environ.
ЗАМЕЧАНИЯ:
Команды управления должны подвергаться грамматическому
разбору, а не распознаваться в качестве встроенных
команд. Это позволило бы размещать их в любом месте,
об'единять с помощью символа "|", а также использовать
с метаобозначениями "&" и ";".
96
АПК 00210-01 33 01-4
Команды, содержащиеся внутри циклов с подсказкой "?",
не помещаются в список предшествующих команд.
Должна существовать возможность использования модифи-
каторов ":" при выводе подстановок команд. В макровы-
зовах "$" должно допускаться более одного модификатора
":".
Некоторые команды не должны изменять значения перемен-
ной status, иначе она будет так часто меняться, что
может оказаться почти бесполезной. Установка бита 0200
в переменной status при ненормальном завершении свиде-
тельствует об ошибке.
Чтобы сохранить возможность восстановления после не-
удачного выполнения команд ехес, новая команда насле-
дует несколько открытых файлов, отличных от стан-
дартных файлов ввода, вывода и диагностических сообще-
ний. Если файлы ввода/вывода заданы и новая команда не
закрывает их, то некоторые файлы напрасно остаются
открытыми.
97
АПК 00210-01 33 01-4
ИМЯ:
ctags - построение файла ссылок для программ на Си
ФОРМАТ:
ctags [-auw] файл ...
ОПИСАНИЕ:
Команда ctags создает таблицу ссылок (файл с именем
tags) для программ на языке Си, записанных в указанных
файлах. Файл ссылок содержит указания о местонахожде-
нии определенных об'ектов (в данном случае - функций)
в группе файлов. Каждая строка файла ссылок содержит:
имя функции, имя файла (в котором она определена), ре-
гулярное выражение, используемое для поиска определе-
ния функции. Эти данные приводятся в отдельных полях
строки и разделяются пробелами или символами табуля-
ции.
В командной строке могут указываться следующие ключи:
-a Приводит к тому, что результат дописывается в
файл tags;
-x В этом режиме ctags выдает для каждой функции ее
имя, номер строки в которой она определена, имя
файла и содержимое строки с определением данной
функции. Результат выдается в стандартный файл
вывода;
-v Получение списка имен функций с указанием стра-
ниц на которых они определены (предполагается,
98
АПК 00210-01 33 01-4
что страница содержит 64 строки);
-u Вызывает обновление признаков для указанных
файлов, т.е. все ссылки на них удаляются, и к
файлу добавляются новые значения. Подразумевает-
ся задание ключа "-a";
-w Подавляет предупредительную диагностику.
Имя головной программы (main) обрабатывается особым
образом. Вместо имени функции создается некоторое ус-
ловное имя, которое формируется путем добавления "M" к
имени файла и удаления суффикса ".c", если он имеется,
а также удаления первых компонентoв полного имени. Это
позволяет использовать ctags в каталогах с более, чем
одной программой.
ФАЙЛЫ:
tags выходной файл ссылок.
99
АПК 00210-01 33 01-4
ИМЯ:
date - печать даты.
ФОРМАТ :
date
ОПИСАНИЕ:
Выдается текущая дата и время в виде ггммддччмм. Поле
"гг" задает последние две цифры года, "мм" - месяц,
"дд" - день, "чч" - час (по 24-часовой системе), вто-
рое "мм" задает минуты.
ФАЙЛЫ
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
utmp
100
АПК 00210-01 33 01-4
ИМЯ:
dc - настольный калькулятор.
ФОРМАТ:
dc [файл]
ОПИСАНИЕ:
Представляет собой пакет для выполнения арифметических
операций с произвольной точностью. Обычно он оперирует
с десятичными целыми числами, однако можно задавать
входное и выходное основания системы счисления и коли-
чество обрабатываемых дробных цифр. С точки зрения об-
щей структуры dc представляет собой стековый калькуля-
тор (с использованием обратной польской записи). Если
задан параметр, ввод осуществляется из указанного
файла (до тех пор, пока он не закончится), а затем -
из стандартного файла ввода. Распознаются следующие
конструкции:
число значение числа помещается в стек. Число
представляет собой непрерывную строку цифр 0-9.
Ему может предшествовать символ подчеркивания
"_", который служит для ввода отрицательных
чисел. Числа могут содержать десятичную точку;
+ - / * % ^
Два верхних значения стека складываются (+), вы-
читаются (-), умножаются (*), делятся (/), опре-
деляется остаток (%) или возводятся в степень
(^). Два этих значения выталкиваются из стека;
101
АПК 00210-01 33 01-4
на их место в стеке помещается результат. Дроб-
ная часть в показателе стека игнорируется;
sx Вершина стека извлекается и запоминается в ре-
гистре с именем "x", где в качестве "x" может
использоваться любой символ. Если буква S заг-
лавная, "x" рассматривается как стек, и в него
помещается данное значение;
lx Значение регистра "x" помещается в стек. Содер-
жимое регистра "x" не изменяется. Начальные зна-
чения всех регистров нулевые. Если буква L заг-
лавная, регистр "x" рассматривается как стек, и
его верхнее значение помещается в основной стек;
d Верхнее значение стека удваивается;
p Верхнее значение стека распечатывается. Верхнее
значение остается неизменным. "P" рассматривает
вершину стека как строку символов КОИ-8, удаляет
и распечатывает эту строку;
f Распечатываются все значения, находящиеся в сте-
ке и в регистрах;
q Производится выход из программы. При выполнении
строки уровень рекурсии уменьшается на два. Если
буква Q заглавная, из стека извлекается верхнее
значение и уровень выполнения строки Изменяется
на это значение;
102
АПК 00210-01 33 01-4
x Рассматривает верхний элемент стека как строку
символов и выполняет ее как строку команд dc;
X Заменяет число в вершине стека на его масштабный
множитель;
[...] Помещает строку символов КОИ-8 в скобках в вер-
шину стека;
<x >x =x
Верхние два элемента стека извлекаются и сравни-
ваются. Если они удовлетворяют указанному отно-
шению, выполняется регистр "x";
v Заменяет верхний элемент стека его квадратным
корнем. Существующая дробная часть параметра
учитывается, иначе масштабный множитель игнори-
руется;
! Остальная часть строки рассматривается как ко-
манда системы ДЕМОС;
c Из стека извлекаются все значения;
i Верхнее значение стека извлекается и использует-
ся в качестве основания чисел для последующего
ввода. Заглавное I помещает в вершину стека
входное основание;
o Верхнее значение стека извлекается и использует-
ся в качестве основания чисел для последующего
вывода. Заглавное O помещает в вершину стека вы-
103
АПК 00210-01 33 01-4
ходное основание;
k Извлекается верхнее значение стека, которое ис-
пользуется в качестве неотрицательного масштаб-
ного множителя: соответствующее количество пози-
ций печатается при выводе и обрабатывается при
умножении, делении и возведении в степень. Вза-
имовлияние масштабного множителя, входного осно-
вания и выходного основания будут иметь смысл,
если все они изменяются одновременно;
z Уровень стека помещается в стек. Заглавное Z за-
меняет число в вершине стека его длиной;
? Из источника ввода (обычно терминал) вводится и
выполняется входная строка;
; : Используется командой bc для операций с массива-
ми.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
bc - препроцессор для dc, обеспечивающий инфиксное
представление и напоминающий язык Си, синтаксис кото-
рого реализует функции и удобные структуры управления
для программ.
Имеется отдельное описание dc.
ДИАГНОСТИКА:
"x is unimplemented" ("x не помещается"), где x -
восьмеричное число.
104
АПК 00210-01 33 01-4
"stack empty" ("стек пуст"), если в стеке недостаточно
элементов для выполнения требуемых функций.
"out of space" ("не хватает места"), когда исчерпан
список свободного пространства (слишком много цифр).
"out of headers" ("не хватает заголовков"), когда од-
новременно обрабатывается слишком много чисел.
"out of pushdown" ("исчерпан стек"), если в стеке
слишком много элементов.
"Nesting Depth" ("глубина вложения"), если слишком
много уровней вложенного выполнения.
105
АПК 00210-01 33 01-4
ИМЯ:
dcon - отладчик
ФОРМАТ:
dcon файл [ имя списка ]
ОПИСАНИЕ:
Dcon является отладчиком ДЕМОС. Команда позволяет как
проверять содержимое файлов, так и динамически тести-
ровать программу. Обычно, когда используется операнд
"файл", проверяется файл или программа (выходной фор-
мати производится дамп памяти с ошибкой или распечатка
нужного файла (находящегося, например на диске).
"Имя списка" - используется, если файл содержит сим-
вольную таблицу. Если этот операнд отсутствует, табли-
ца символов выбирается из самого файла, имя которого
использовано в команде. Если нет возможности найти
список имен, dcon может быть использована, но уже без
возможности работы с символьными данными.
Далее приводится краткое описание вариантов использо-
вания команд dcon. Большинство команд dcon включают
адреса операндов и режимы печати. Адреса выражений,
которые могут быть использованы, приведены ниже:
source_name
адрес имени-источника (source_name), определен-
ного в программе;
;r0...;r15
106
АПК 00210-01 33 01-4
просмотр регистров с 0 по 15;
;fr0...;fr6
просмотр содержимого регистров с плавающей
точкой 0,2,4,6;
local_name
имя отладчика, начинается с "#";
number
восьмеричный, десятичный, шестнадцатеричный
номер использования "С" вводного формата (Оn, n,
Oxn);
. размещение наиболее "свежих" результатов тести-
рования;
.. размещение текущей команды;
$ конец файла;
expr обычное выражение, исключающее использование
"//" в качестве разделителя;
name=expr
об'ем памяти для expr;
function:variable
относится к локальной переменной (variable) в
функции (function);
*expr косвенное выражение через expr;
107
АПК 00210-01 33 01-4
enter(name)
начало имени функции;
exit(name)
конец имени функции;
Содержимое адресов, представленных в выражениях, выво-
дится согласно следующим режимам. Режим вывода специ-
фицируется двумя параметрами: длиной символов и формой
представления.
Длины могут быть представлены в виде:
-b для адресуемого байта;
-h для адресуемого полуслова;
-w для адресуемого слова;
-l для адресуемого двойного слова;
-a для адреса самого выражения.
Режимы вывода:
-d для десятичных данных;
-o для восьмеричных данных;
-x для шестнадцатеричных данных;
-c для символьных данных;
-s для строки символов (не указателей);
108
АПК 00210-01 33 01-4
-i для мнемоники команды;
-ix для режимов i и x;
-v для символов, значение которых связано с адре-
сом.
Могут быть также следующие варианты:
(new-line)
выводит ".+длина печати";
expr1,expr2[print-option]
печатает размещение выражений от expr1 до expr2;
+expr[print-option]
выводит ".+выражение";
-expr[print-option]
выводит ".-выражение";
?[print-option]
выводит "след" стока;
*[print-option]
выводит '*';
;psw[print-option]
выводит psw;
!ДЕМОС-command
посылает команды ДЕМОС интертритатору shell;
{command_list}
109
АПК 00210-01 33 01-4
список команд;
;if(expr)command
если выражение имеет ненулевое значение, command
выполняется;
;bp expr[command_command][/*comment]
точка прерывания в выражении;
;macro name(arg)command
определяет локальное имя макроопределения, кото-
рое, когда используется, подставляет значение
аргумента (arg);
;go [arg1 arg2...]
начинает выполнение программы, используя указан-
ные аргументы;
;cont [expr]
продолжает выполнение выражения (expr);
;brks выводит текущие точки прерывания;
;clr [expr]
расставляет точки прерывания в выражении;
;quit эквивалентно ЕОТ (выйти из отладчика);
;do file
взять команды из файла "file";
;out [file]
начать косвенный вывод файла "file";
110
АПК 00210-01 33 01-4
;save [expr][/*comment]
осуществляет непрерывное изменениe выражения.
Если выражение не специфицировано, все изменения
происходят непрерывно. Изменения, дата, время,
имя модификации записываются в файл file.cmt.
;rst [expr]
сохраняет значение в expr относительно его зна-
чений на входе команды dcon. Если expr не указа-
но, сохраняется размещение изменений;
;copy file
подобно ;save исключает сохранение изменяемого
файла в file;
;ss [n[command]]
один шаг программы, где "n" -номер команды,
после которой необходимо остановить программу.
111
АПК 00210-01 33 01-4
ИМЯ:
dd - преобразовать и скопировать файл.
ФОРМАТ:
dd [ключ = значение] ...
ОПИСАНИЕ:
Команда dd копирует заданный входной файл в заданный
выходной файл с возможными преобразованиями. По умол-
чанию используются стандартный файл ввода и стан-
дартный файл вывода. Может быть задан размер блока при
вводе и выводе, чтобы использовать преимущества прямо-
го физического ввода-вывода.
Параметр значение
if= Имя входного файла (по умолчанию - стандартный
файл ввода).
of= Имя выходного файла (по умолчанию - стандартный
файл вывода).
ibs=n
Устанавливает размер блока при вводе равным n байт
.
obs=n
Устанавливает размер блока при выводе равным n
байт .
bs=n
Устанавливает размер блока как для ввода, так и
112
АПК 00210-01 33 01-4
для вывода, отменяя ibs и obs. Особенно эффекти-
вен, если не задано преобразование (не требуется
создание копии).
cbs=n
Размер буфера преобразования.
skip=n
Пропускает n входных записей перед началом копиро-
вания.
files=n
Пропускает n входных файлов перед началом копиро-
вания.
seek=n
Пропускает n записей от начала выходного файла
перед копированием.
count=n
Копирует только n входных записей.
conv=ascii
Выполняет преобразование из кода ДКОИ в код КОИ-8.
conv=ebcdic
Выполняет преобразование из кода КОИ-8 в код ДКОИ.
conv=ibm
Несколько отличающееся преобразование КОИ-8 в
ДКОИ.
113
АПК 00210-01 33 01-4
conv=lcase
Преобразует алфавитные символы в нижний регистр.
conv=ucase
Преобразует алфавитные символы в верхний регистр.
conv=swab
Переставляет каждую пару байтов.
conv=noerror
Не прекращает обработку при обнаружении ошибки
чтения.
conv=sync
Дополняет каждую входную запись до размера ibs.
conv=...,...
Несколько преобразований, разделенных запятой.
Там, где определяются размеры, предполагается указание
числа байтов. Число может оканчиваться символами "k",
"b" или "w", что означает умножение на 1024,4096 или 2
соответственно.Для обозначения произведения пара чисел
может разделяться символом "x".
Параметр "cbs=n" используется только тогда, когда за-
даны преобразования ascii или ebcdic. В первом случае
cbs символов помещаются в буфер преобразования, преоб-
разуются в код КОИ-8 и перед помещением этой строки в
выходной файл заключительные пробелы отбрасываются и
добавляется символ новой строки. Во втором случае сим-
114
АПК 00210-01 33 01-4
волы КОИ-8 считываются в буфер преобразования, преоб-
разуются в код ДКОИ и дополняются пробелами, чтобы по-
лучить выходную запись размером cbs.
После завершения dd сообщает количество полных и не-
полных введенных и выведенных блоков.
ПРИМЕР:
Следующая команда переписывает ленту ДКОИ, которая со-
держит по десять 80-байтных образов карт ДКОИ в блоке,
в файл с именем x:
dd if=/dev/mt580 of=х ibs=800 cbs=80 conv=ascii,lcase
Обратите внимание на использование небуферизированного
обмена с магнитной лентой (rmt). Команда dd особеннно
подходит для небуферизированного ввода-вывода, так как
позволяет считывать и записывать записи произвольного
размера.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
cp, tr
ДИАГНОСТИКА:
"f+p records in (out)" ("f+p записей введено (выведе-
но)"): количество полных и неполных считанных (запи-
санных) записей.
ЗАМЕЧАНИЯ:
Символы новой строки вставляются только при преобразо-
вании в код КОИ-8.Дополнение выполняется только при
115
АПК 00210-01 33 01-4
преобразовании в код ДКОИ. Это следовало бы сделать
отдельными параметрами.
116
АПК 00210-01 33 01-4
ИМЯ:
ddutok - перекодировка из кода "u-cod" МНОС.
ФОРМАТ:
ddutok файл ...
ОПИСАНИЕ :
Команда ddutok последовательно перекодирует каждый
"файл" из кода "u-cod" и записывает результат под
прежним именем. Команда работает таким образом, что
файлы, содержащие нетекстовые символы или не содержа-
щие русских букв остаются неизмененными.
"u-cod" - это нестандартная кодировка, отличающаяся от
КОИ-8 тем, что русские буквы упорядочены по алфавиту,
строчные буквы начинаются с кода 0340, прописные -
0300.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ:
dd
117
АПК 00210-01 33 01-4
ИМЯ
demsend - перфорация данных для системы ДЕМОС.
ОПИСАНИЕ
demsend называется загрузочный модуль программы на
языке pl/1. Результатом выполнения этой программы в
среде ОС ЕС или ПДО является перфорация файла вирту-
альным перфокарточным устройством вывода с направлени-
ем перфорации на виртуальный перфокарточный ввод ВМ
ДЕМОС. Чтение с перфокарточного ввода и размещение в
файле ДЕМОС перфорированных данных выполняет утилита
vmread. Управляющие параметры программы dемsend запи-
сываются в поле РАRМ оператора EXEC и имеют состав
аналогичный составу заголовка утилиты vmread:
/modes; userid; destfile.
Где
modes поле управляющих ключей vmread;
userid
имя пользователя ДЕМОС
destfile
имя файла ДЕМОС
Следующий пример показывает операторы ЯУЗ ОС ЕС для
выполнения программы demsend:
//name job ...
118
АПК 00210-01 33 01-4
//*route punch mode.dem
//senddem exec pgm=demsend,parm='/s;petr1;blah'
//steplib dd dsn=engtools.public.load,disp=shr
//in dd dsn=petr1.test.blah,disp=old,dcb=(...)
//out dd dcb=(recfm=fb,lrecl=80,blksize=80),
// sysout=b
Для получения эффекта работы программы demsend в среде
системы ПДО имеется файл ПДО названия demsend module и
командная процедура demsend exec, обеспечивающие поль-
зовательский интерфейс с перфорацией.
ДОПОЛНИТЕЛЬНЫЕ ССЫЛКИ
vmread, send
119
АПК 00210-01 33 01-4
ИМЯ:
deroff - удалить конструкции pif, troff, tbl и eqn.
ФОРМАТ:
deroff [-w] файл ...
ОПИСАНИЕ:
Команда deroff поочередно считывает каждый файл и уда-
ляет все командные строки pif, troff, конструкции с
обратной косой чертой, макроопределения, конструкции
eqn (между строками ".eq" и ".en" или между ограничи-
телями), а также описания таблиц, и записывает остаток