выражение

выражение
Оригинальный автор(ы)Дик Хейт
( AT&T Bell Laboratories )
Разработчик(и)Различные разработчики открытого и коммерческого ПО
Первоначальный выпуск1979 ; 46 лет назад ( 1979 )
Операционная системаUnix , Unix-подобный , IBM i
ПлатформаКроссплатформенный
ТипКоманда

expr — это утилита командной строки в Unix и Unix-подобных операционных системах , которая вычисляет выражение и выводит соответствующее значение. Впервые она появилась в Unix v7 . Команда доступна для Microsoft Windows как часть коллекции UnxUtils [1] собственных портов Win32 распространенных GNU Unix-подобных утилит. [2] Команда expr также была перенесена в операционную систему IBM i . [3 ]

Обзор

expr оценивает целочисленные или строковые выражения, включая регулярные выражения сопоставления с шаблоном . Каждый символ (оператор, значение и т. д.) в выражении должен быть указан как отдельный параметр. Большая часть проблем, возникающих при написании выражений, заключается в том, чтобы не допустить воздействия вызывающей оболочки командной строки на символы, предназначенные для обработки expr .

Синтаксис

Синтаксис: expr выражение

Доступные операторы

  • для целых чисел: сложение, вычитание, умножение, деление и модуль
  • для строк: соответствие регулярному выражению; в некоторых версиях: поиск набора символов в строке («index»), поиск подстроки («substr»), длина строки («length»)
  • для: сравнения (равно, не равно, меньше и т. д.)

Пример

Ниже приведен пример (не соответствующий POSIX ), включающий булевы выражения :

длина выражения "abcdef" "<" 5 "|" 15 - 4 ">" 8

Этот пример выводит "1". Это потому, что длина "abcdef" равна 6, что не меньше 5 (поэтому левая часть | возвращает ноль). Но 15 минус 4 равно 11 и больше 8, поэтому правая часть истинна, что делает or истинным , поэтому результатом будет 1. Статус выхода программы для этого примера равен нулю .

Для чистой арифметики часто удобнее использовать bc . Например:

эхо "3 * 4 + 14 / 2" | bc

поскольку он принимает выражение как один аргумент.

Для программирования переносимой оболочки следует избегать использования команд «index», «length», «match» и «substr»; сопоставление строк остается возможным, но для этого необходимо использовать синтаксис «string : regexp».

Смотрите также

Ссылки

  1. ^ Порт важнейших утилит GNU для Windows
  2. ^ "Нативные порты Win32 некоторых утилит GNU". unxutils.sourceforge.net .
  3. ^ IBM . "IBM System i Version 7.2 Programming Qshell" (PDF) . IBM . Получено 2020-09-05 .
Взято с "https://en.wikipedia.org/w/index.php?title=Expr&oldid=1236296200"