Команды 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 инструмента, чтобы узнать больше о нём.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.