Э. Сивер, С. Спейнауэр, С. Фиггинс, Дж. П. Хекман - Linux cправочник - 3-е издание (1114666), страница 11
Текст из файла (страница 11)
Так, следующие идентификаторы не противоречат друг другу:Переменная х.хx[i] Элемент массива х с номером i. i лежит в интервале от Одо 2047 и может являться выражением.х(у,г)Вызов функции х с параметрами утл. г.Ключевые слова ввода-выводаКлючевые слова ibase, obase, scale и last имеют значения.Текущие значения отображаются при простом вводе этихключевых слов.
Текущие значения могут быть измененыприсваиванием. Буквы A-F трактуются как цифры с диапазоном значений 10-15.ibase = пВводимые (например, вручную) числа считаются представленными в системе счисления с основанием п (поумолчанию п = 10).obase = пОтображаемые числа представлены в системе счисления соснованием п (по умолчанию п = 10). Примечание: длятого чтобы вернуть параметрам ibase и obase значения поумолчанию, используйте цифру А.scale = пОтображать результаты вычислений, ограничивая длинудробной части до га десятичных цифр (значение по умолчанию равно 0, т. е.
результат округляется до целого числа). Ключевое слово scale обычно используется толькодля вычислений в десятичной системе.lastВыдать значение последнего напечатанного числа.62beГлава 3. Команды LinuxКлючевые слова программных операторовОператоры отделяются друг от друга точкой с запятой илиновой строкой. Фигурные скобки необходимы для объединения нескольких операторов.if (rel-expr) {statements} [else {statements}]Выполнить один или несколько операторов (statements),если выражение rel-expr истинно. В противном случае непроизводить никаких действий либо, если задано расширение else, выполнять альтернативные операторы.
Например:i f (x==y) { 1 = 1 + 1 } else { 1 = 1 - 1 }while (rel-expr) {statements}Повторять один или более операторов (statements), покаусловие rel-expr истинно. Например:while (i>0) {p = p * n ; q = а / Ь; 1 = 1 - 1 }for (exprl; rel-expr; expr2) {statements}Оператор схож с оператором while. Например, чтобы напечатать десять чисел, кратных пяти, начиная с 5, можноввести:for ( 1 = 1 ; 1 <= 10; 1++) 1*5В GNU-версии be оператор for может иметь меньше трехаргументов.
Если опущен первый или третий аргумент,это означает, что данное выражение не вычисляется. Отсутствующий второй аргумент всегда принимает значение 1.breakПрерывает выполнение оператора while или for.print listРасширение GNU-версии. Оператор обеспечивает альтернативное средство вывода. Список (list) представляет собой последовательность строк и выражений, разделенных запятыми, print отображает элементы списка в порядке следования и не выводит символ новой строки позавершении печати.
Каждое выражение вычисляется, результат выводится на печать, а затем специальная переменная last принимает значение этого выражения. Строки просто выводятся на печать (и могут содержать специальные символы, т. е. начинающиеся с символа «\»). Специальные символы:Алфавитный перечень командаbfпгqt\звуковой сигналзабой (backspace)новая страница (form feed)новая строка (newline)возврат каретки (carriage return)двойные кавычки (double quote)табуляция (tab)обратный слэш (backslash)continueGNU-расширение. Немедленный переход к следующейитерации в операторе for.haltGNU-расширение. Немедленное прекращение работы be.limitsGNU-расширение.
Выдать информацию об ограничениирабочих диапазонов (для данной версии be).Ключевые слова функцийdefine f(args) {Начало определения функции /, принимающей аргументы args. Аргументы разделяются запятыми. На следующих строках записываются программные операторы.
Определение завершается символом «}».auto x, уОпределить переменные х и у как локальные для функции и не имеющие смысла за ее пределами, инициализировать их значением 0. Ключевое слово должно предшествовать всем прочим.return(e^pr)Вернуть значение выражения ехрг в программу. Функция return возвращает 0, если выражение отсутствует.Используется при определении функций.sqrt(expr)Вычислить квадратный корень выражения ехрг.lengih(expr)Определить количество значащих цифр в выраженииехрг.63be64Глава 3. Команды Linuxbescale(expr)To же, что и length, но в расчет принимаются только цифры после десятичной запятой.read()GNU-расширение.
Прочитать число со стандартного ввода. Возвращаемое значение равно введенному числу, преобразованному в соответствии со значением ibase.Функции математической библиотекиПеречисленные ниже функции доступны лишь при запускеbe с параметром —1. Подключение математической библиотеки устанавливает значение scale в 20.s(angle)Вычислить синус угла (angle); константа или выражениев радианах.c(angle)Вычислить косинус угла (angle); константа или выражение в радианах.а(п)Вычислить арктангенс п и вернуть угол в радианах.е(ехрг)Возвести е в степень выражения (ехрг).1(ехрг)Вычислить натуральный логарифм выражения (ехрг).j(n, х)Вычислить функцию Бесселя от целого порядка п.ОператорыСостоят из символов операторов и операндов.
Операторы делятся на арифметические, одноместные, операторы присваивания и операторы отношений.арифметические+ - * / % Лодноместные-++ —присваивания=+ =_ =* =/ =% =- =отношений< <= > >= == !=Алфавитный перечень команд65Прочие символыbe/* */Границы комментария.() Круглые скобки служат для контроля вычисления выражений, в частности, для изменения приоритета операций. Кроме того, оператор присваивания может заключаться в круглые скобки, что вызывает печать результата.{} Фигурные скобки используются для группированияоператоров.[] Квадратные скобки содержат индекс при обращении кмассиву."text"Двойные кавычки используются для печати текста (text).ПримерыОбратите внимание, что при вводе числа (в цифрах или выражении) оно вычисляется и печатается, однако при присваивании никакого вывода не происходит.ibase = 82016Ввод в восьмеричной системе счисления«Вычислить» это восьмеричное числоНа терминале отображается десятичный эквивалентobase = 2Отображать числа в двоичной системе, а не в десятичной20Восьмеричный ввод10000На терминале отображается двоичный эквивалентibase = АВернуться к вводу в десятичной системеscale = 3Усечение результата до трех цифр после запятой8/7Вычислить результат деления1.001001000 Однако! А кто будет за результирующей системойсчисления следить?obase = 10 Сейчас ввод происходит в десятичной системе счисления, так что можно обойтись без А.8/71.142На терминале отображается результат, усеченныйдо 3 знаков после запятой.66beГлава 3.
Команды LinuxНиже показано использование функций:define p(r, п) { Функцияр принижает два аргументаПеременная и является локальной для функцииauto vv = r"nг возводится в степень пreturn (v)}Возврат значенияscale = 5х = 2,5-2x=p(2.5, 2)xВывести значение х6.25length(x)Число цифр3scale(x)Число десятичных цифр после запятой2biffbiff [arguments}Уведомление пользователя о пришедшей почте и имени отправителя, biff работает асинхронно. Уведомление действует, только если в системе запущен сервер comsat(8).
Команда biff у включает режим уведомления, a biff n отключаетего. Команда без аргументов информирует пользователя освоем текущем статусе.bisonbison [options] f i l eПостроение таблиц для последующего грамматического разбора на основе файла (file), содержащего описание контекстно-независимой грамматики. Результат записываетсяв файл file.c. Этот инструмент был назван по аналогии с уасси очень во многом совместим с ним. Имена всех исходныхфайлов должны содержать суффикс .у, а имена получаемыхфайлов - исходный префикс имени. Все длинные имена параметров (предваряемые обычно символами «—») могутпредваряться символом « + ».Параметры—b prefix, —file-prefix=pre/ixДля всех получаемых файлов использовать префикс ргеfix.—d, —definesСоздать файл file.h, содержащий директивы #define, связывающие коды лексем bison с именами лексем, определяемыми пользователем.Алфавитный перечень команд—г, —raw67bisonВ файле file.fi использовать номера лексем, а не уасс-совместимые преобразования.—k, —token-tableВключить в файл file.c имена лексем и значения YYNTOKENS, YYNNTS, YYNRULES и YYNSTATES.—1, —no-linesИсключить директивы #line из кода в file.c (обычно применяется после завершения отладки).—n, —no-parserПодавить выдачу результирующего кода грамматического разбора, оставив только объявления.
Собрать все результаты преобразований в теле оператора switch и сохранить оператор в файле file.act.—о file, —output-file=/j/eВыдача результата в указанный файл.—р prefix, —name-prefix=pre/ijcЗаменить префикс (prefix) на уу во всех внешних именах.-t, —debugСкомпилировать код отладки времени выполнения.-v, —verboseРежим детальной диагностики. Сообщения записываются в файл file.output.—V, —versionОтобразить номер версии bison.-у, —уасс, —fixed-output-filesСледовать принятым в уасс соглашениям по именованиюполучаемых файлов.bootpd [options] [configfile [dumpfile]]Команда TCP/IP.