Команды Linux · 2 min read · Sep 20, 2025
Учебник по команде expr в Linux для начинающих (с примерами)
Иногда, работая в командной строке (особенно при работе со скриптом оболочки), вы можете оказаться в ситуации, когда вам нужно выполнить такие действия, как поиск подстроки в строке, нахождение её индекса, а также другие вещи, такие как выполнение сравнений и арифметических операций.
Для тех, кто не в курсе, существует утилита командной строки - названная expr - которая позволяет вам делать всё это. В этом учебнике мы обсудим основы этой команды вместе с некоторыми её функциями. Обратите внимание, что все примеры и инструкции, упомянутые здесь, были протестированы на Ubuntu 16.04LTS.
Команда expr в Linux
Официальная документация инструмента говорит, что он используется для оценки выражений. Вот синтаксис команды expr:
expr EXPRESSION
expr OPTIONСледующие примеры в формате вопросов и ответов дадут вам хорошее представление о том, как работает этот инструмент.
Вопрос 1. Как выполнять арифметические операции с помощью expr?
Предположим, вы хотите сложить два числа (например, 5 и 6), вот как вы можете это сделать с помощью expr:
expr 5 + 6Вот команда в действии:

Таким образом, вы можете видеть, что сумма ‘11’ была получена в выводе. Обратите внимание, что один пробел с каждой стороны оператора (‘+’ в данном случае) является обязательным. В противном случае команда expr выдаст следующий вывод:

что явно неверно и не соответствует нашим ожиданиям.
Аналогичным образом, операция вычитания может быть выполнена следующим образом:
expr 15 - 6Вот пример деления:
expr 10 / 3Обратите внимание, что вышеупомянутая команда выдаст только 3 в выводе. Если вы хотите увидеть остаток, используйте оператор %.
expr 10 % 3
Умножение должно быть выполнено следующим образом:
expr 10 * 3Но это не работает, потому что * также является встроенным оператором оболочки. Поэтому, чтобы заставить его вести себя как оператор умножения, вам нужно предшествовать ему символом экранирования следующим образом:
expr 10 \* 3
Вопрос 2. Как выполнять операции сравнения с помощью expr?
Команда expr также позволяет вам выполнять операции сравнения различными способами. Например, следующая команда (третья на скриншоте ниже) вернёт ARG1, если он не равен нулю и не равен 0, иначе вернёт ARG2.

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

Вопрос 3. Как выполнять операции со строками с помощью expr?
Команда expr также позволяет вам выполнять несколько операций со строками. Например, чтобы найти длину строки, вы можете использовать инструмент следующим образом:
expr length [string]
Если строка содержит пробелы, вам нужно использовать символ экранирования.

Далее, вы также можете использовать expr для извлечения подстроки в данной строке. Вот синтаксис:
expr substr [string] [pos] [length]
Например, чтобы извлечь ‘forge’ из ‘howtoforge’, вы можете использовать инструмент следующим образом:

Более того, вы также можете использовать expr для нахождения начального индекса для набора символов в данной строке. Вот синтаксис для этого:
expr index [string] [chars]
Например, чтобы найти индекс ‘wt’ в ‘howtoforge’, используйте expr следующим образом:

Заключение
Как вы, вероятно, согласитесь, expr - это команда с богатым функционалом, но при этом она проста для понимания и использования. Здесь, в этом учебнике, мы постарались предоставить вам информацию о большинстве основных функций, которые она предлагает. Как только вы закончите практиковаться с этими, вы можете перейти на страницу man инструмента, чтобы узнать больше о нём.
Get new posts in your inbox
No spam. Unsubscribe anytime.