Главная > Среда и утилиты > expr

expr: Оценка выражений

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

Обзор

Команда expr используется для выполнения арифметических, реляционных, логических и строковых операций. Каждый аргумент обрабатывается как отдельный токен, поэтому между операторами и операндами требуется пробел.

Основные возможности

  • Арифметические операции (сложение, вычитание, умножение, деление, остаток)
  • Строковые операции (длина, подстрока, индекс, сопоставление с регулярным выражением)
  • Реляционные операции (равенство, неравенство, больше, меньше)
  • Логические операции (И, ИЛИ)

Основные операторы

Команда expr использует различные операторы для оценки выражений. Каждый оператор должен рассматриваться как отдельный аргумент.

Арифметические операторы

Реляционные операторы

Логические операторы

Строковые операторы

Сгенерированная команда:

Комбинируйте команды.

Описание:

`expr` Запускает команду.

Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.

Примеры использования

Базовая арифметическая операция

expr 10 + 5

Сложение двух чисел.

Операция умножения с переменной

num=20
expr $num \* 3

Выполнение умножения с использованием значения переменной. Оператор умножения (*) имеет особое значение в оболочке, поэтому его необходимо экранировать.

Получение длины строки

expr length "Hello World"

Возвращает длину заданной строки.

Извлечение подстроки

expr substr "example" 3 4

Извлекает 4 символа из строки 'example', начиная с 3-й позиции.

Сопоставление с регулярным выражением и извлечение

expr "filename.tar.gz" : ".*\.\(tar\.gz\)"

Извлекает часть строки, соответствующую регулярному выражению. Содержимое в скобках возвращается как подстрока.

Логическая операция И (AND)

expr 5 \& 0

Возвращает первый операнд, если оба операнда не равны 0. В оболочке & используется для запуска в фоновом режиме, поэтому его необходимо экранировать.

Советы и предостережения

Важные моменты и полезные советы при использовании expr.

Основные предостережения

  • **Обязательные пробелы**: Между операторами и операндами обязательно должны быть пробелы.
  • **Экранирование**: Символы, имеющие особое значение в оболочке (например, `*`, `(`, `)`, `&`, `|`, `<` и т. д.), должны быть экранированы с помощью обратной косой черты (`\`) или заключены в кавычки.
  • **Целочисленные операции**: `expr` по умолчанию поддерживает только целочисленные операции. Для операций с плавающей запятой следует использовать другие утилиты, такие как `bc`.
  • **Сохранение результата**: Результат `expr` выводится на стандартный вывод. Чтобы сохранить его в переменной оболочки, используйте подстановку команд (например, `result=$(expr 10 + 5)` или `result=`expr 10 + 5``).

Те же команды в категории