Це команда exprposix, яку можна запустити в постачальнику безкоштовного хостингу OnWorks за допомогою однієї з наших численних безкоштовних робочих станцій, таких як Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS.
ПРОГРАМА:
ІМ'Я
expr — оцінювати аргументи як вираз
СИНТАКСИС
експр операнд...
ОПИС
Команда експр Утиліта повинна оцінити вираз і записати результат у стандартний висновок.
ВАРІАНТИ
Ні.
ОПЕРАНДИ
Єдиний вираз, оцінений за допомогою експр утворюється з операнд операнди, як
описано в розділі РОЗШИРЕНИЙ ОПИС. Додаток має гарантувати, що кожен з
символи оператора виразу:
( ) | & = > >= < <= != + - * / % :
і символи ціле та рядок в таблиці надаються як окремі аргументи до
експр.
STDIN
Не використовується.
ВХІД ФАЙЛИ
Ні.
НАВКОЛИШНЄ СЕРЕДОВИЩЕ ЗМІННІ
Наступні змінні середовища мають впливати на виконання експр:
МОВА Надайте значення за замовчуванням для змінних інтернаціоналізації, які не встановлені або
нуль. (Дивіться том Base Definitions POSIX.1-2008, розділ 8.2,
Internationalization Змінні за пріоритет інтернаціоналізації
змінні, що використовуються для визначення значень категорій мовного стандарту.)
LC_ALL Якщо встановлено не порожнє значення рядка, замініть значення всіх інших
змінні інтернаціоналізації.
LC_COLLATE
Визначте місцевість для поведінки діапазонів, класів еквівалентності та мульти-
елементи порівняння символів у регулярних виразах і за рядком
оператори порівняння.
LC_CTYPE Визначте локаль для інтерпретації послідовностей байтів текстових даних
як символи (наприклад, однобайтові на відміну від багатобайтових символів у
аргументи) і поведінку класів символів у регулярних виразах.
LC_MESSAGES
Визначте місцевий стандарт, який слід використовувати для впливу на формат і вміст
діагностичні повідомлення, записані у стандартну помилку.
NLSPATH Визначте розташування каталогів повідомлень для обробки LC_MESSAGES.
АСИНХРОННИЙ ПОДІЇ
За замовчуванням.
ВИСТАВКА
Команда експр Утиліта повинна оцінити вираз і записати результат, а потім а
, до стандартного виводу.
STDERR
Стандартна помилка повинна використовуватися лише для діагностичних повідомлень.
ВИХІД ФАЙЛИ
Ні.
ПОВЕРНЕНІ ОПИС
Формування обчислюваного виразу показано в наступній таблиці. The
Символи експр, вираз 1 та вираз 2 представляють вирази, утворені від ціле та рядок
символи та символи оператора виразу (всі окремі аргументи) рекурсивно
застосування конструкцій, описаних у табл. Вирази перераховані по порядку
зростаючого пріоритету з операторами рівного пріоритету, згрупованими між горизонтальними
лінії. Усі оператори мають бути лівоасоціативними.
┌────────────────┬───────────────────────────────── ──────────┐
│ вираз │ Опис │
├───────────────┼───────────────────────────────── ──────────┤
│вираз 1 | вираз 2 │ Повертає оцінку вираз 1 якщо це │
│ │ ні нуль, ні нуль; інакше │
│ │ повертає оцінку вираз 2 якщо це │
│ │ не нульовий; інакше нуль. │
├───────────────┼───────────────────────────────── ──────────┤
│вираз 1 & вираз 2 │ Повертає оцінку вираз 1 якщо │
│ │ жоден вираз не має значення нуль або │
│ │ нуль; інакше повертає нуль. │
├───────────────┼───────────────────────────────── ──────────┤
│ │ Повертає результат десяткового цілого числа │
│ │ порівняння, якщо обидва аргументи │
│ │ цілі числа; інакше повертає результат │
│ │ порівняння рядків за допомогою локалі- │
│ │ специфічна послідовність зіставлення. Результат │
│ │ кожного порівняння дорівнює 1, якщо вказано │
Відношення │ │ істинне, або 0, якщо │
│ │ відношення хибне. │
│вираз 1 = вираз 2 │ Рівний. │
│вираз 1 > вираз 2 │ Більше ніж. │
│вираз 1 >= вираз 2 │ Більше або дорівнює. │
│вираз 1 < вираз 2 │ Менше ніж. │
│вираз 1 <= вираз 2 │ Менше або дорівнює. │
│вираз 1 != вираз 2 │ Не рівні. │
├───────────────┼───────────────────────────────── ──────────┤
│вираз 1 + вираз 2 │ Додавання десяткового цілого числа │
│ │ аргументи. │
│вираз 1 - вираз 2 │ Віднімання десяткового цілого числа │
│ │ аргументи. │
├───────────────┼───────────────────────────────── ──────────┤
│вираз 1 * вираз 2 │ Множення десяткового цілого числа │
│ │ аргументи. │
│вираз 1 / вираз 2 │ Ціле ділення десяткового цілого числа- │
│ │ значенні аргументи, що створює ціле число │
│ │ результат. │
│вираз 1 % вираз 2 │ Залишок від цілого поділу десяткового │
│ │ цілочисельні аргументи. │
├───────────────┼───────────────────────────────── ──────────┤
│вираз 1 : вираз 2 │ Відповідний вираз; Дивись нижче. │
├───────────────┼───────────────────────────────── ──────────┤
│( експр ) │ Групування символів. Будь-який вираз може бути │
│ │ в дужках. Дужки │
│ │ можуть бути вкладені на глибину │
│ │ {EXPR_NEST_MAX}. │
├───────────────┼───────────────────────────────── ──────────┤
│ціле │ Аргумент, що складається лише з │
│ │ (необов’язковий) унарний мінус, за яким слід │
│ │ цифри. │
│рядок │ рядковий аргумент; Дивись нижче. │
└───────────────┴───────────────────────────────── ──────────┘
Узгодження вираз
Команда ':' Оператор відповідності повинен порівнювати рядок, отриманий в результаті оцінки вираз 1
із шаблоном регулярного виразу, отриманим у результаті оцінки вираз 2. Регулярні
Синтаксис виразу має бути таким, який визначено в томі Base Definitions POSIX.1-2008,
розділ 9.3, базовий регулярний Вирази, за винятком того, що всі шаблони прив’язані до
початок рядка (тобто лише послідовності, які починаються з першого символу a
рядок відповідає регулярному виразу) і, отже, не вказано чи
'^' є особливим символом у цьому контексті. Зазвичай оператор відповідності повертає a
рядок, що представляє кількість відповідних символів ('0' на невдачу). Як варіант, якщо
шаблон містить принаймні один підвираз регулярного виразу "[\(...\)]", рядок
відповідає виразу зворотного посилання "\1" підлягає поверненню. Якщо зворотне посилання
вираз "\1" не збігається, то буде повернуто нульовий рядок.
рядок операнд
Рядковий аргумент — це аргумент, який не можна ідентифікувати як ціле аргумент або як
один із символів оператора виразу, показаних у розділі ОПЕРАНДИ.
Використання рядкових аргументів , субстр, індексабо матч дає невизначені результати.
EXIT СТАТУС
Повинні бути повернуті такі вихідні значення:
0 вираз оцінюється ні до нуля, ні до нуля.
1 вираз оцінюється як нуль або нуль.
2 Недійсний вираз.
>2 Сталася помилка.
НАСЛІДКИ OF ПОМИЛКИ
За замовчуванням.
Команда після розділам він має інформативний.
ЗАСТОСУВАННЯ ВИКОРИСТАННЯ
Після обробки аргументів оболонкою, експр не обов’язково вміти розповісти
різниця між оператором і операндом, крім значення. Якщо "$a" is '=',
команда:
експр $a = '='
виглядає як:
експр = = =
у міру передачі аргументів експр (і всі вони можуть бути прийняті як '=' оператор). The
надійно працює:
експр X$a = X=
Також зверніть увагу, що цей том POSIX.1-2008 дозволяє реалізації розширювати утиліти.
Команда експр Утиліта дозволяє перед цілочисельними аргументами ставити унарний мінус. Це
означає, що цілочисельний аргумент може виглядати як опція. Тому відповідне
додаток має використовувати "−−" конструкція Керівництва 10 тому Базових визначень
POSIX.1-2008, розділ 12.2, Утиліта синтаксис керівні вказівки щоб захистити свої операнди, якщо вони є
це будь-який шанс, що перший операнд може бути цілим від’ємним числом (або будь-яким рядком з провідним
мінус).
ПРИКЛАДИ
Команда експр утиліта має досить складний синтаксис:
* Багато з операторів також є операторами керування оболонкою або зарезервованими словами, тому вони є
для екранування в командному рядку.
* Кожна частина виразу складається з окремих аргументів, тому вільне використання
символи обов'язкові. Наприклад:
┌─────────────────┬────────────────────────┐
│ Недійсний │ Дійсний │
├─────────────────┼────────────────────────┤
│експр 1+2 │ експр 1 + 2 │
│експр «1 + 2» │ експр 1 + 2 │
│експр 1 + (2 * 3) │ експр 1 + \( 2 \* 3 \) │
└──────────────────┴─────────────────────────┘
У багатьох випадках арифметичні та рядкові функції надаються як частина команди оболонки
мови легше використовувати, ніж їх еквіваленти в експр. Щойно написані сценарії повинні
уникнути експр на користь нових функцій всередині оболонки; побачити розділ 2.5, параметри та
Змінні та розділ 2.6.4, Арифметика Розширення.
Наступна команда:
a=$(вираз $a + 1)
додає 1 до змінної a.
Наступна команда для "$a" дорівнює будь -якому /usr/abc/файл або просто файл:
експр $a : '.*/\(.*\)' \| $a
повертає останній сегмент імені шляху (тобто файл). Додатки повинні уникати
характер '/' використовується окремо як аргумент; експр може інтерпретувати його як оператор поділу.
Наступна команда:
експр "//$a" : '.*/\(.*\)'
є кращим уявленням попереднього прикладу. Додавання "//" символи
усуває будь-яку двозначність щодо оператора поділу та спрощує весь вираз.
Також зверніть увагу, що імена шляху можуть містити символи, що містяться в IFS змінна і повинна
цитувати, щоб уникнути "$a" розгорнути на кілька аргументів.
Наступна команда:
експр "$VAR" : '.*'
повертає кількість символів у VAR.
ОБГОВОРЕННЯ
У ранній пропозиції ERE використовувалися в синтаксисі відповідного виразу. Це було змінено
до BRE, щоб уникнути порушення історичних додатків.
Використання ведучого в BRE не вказано, оскільки багато історичних
реалізації розглядали його як особливий символ, незважаючи на їхню систему
документація. Наприклад:
експр Foo : ^foo експр ^foo : ^foo
повернути 3 і 0 відповідно для цих систем; їхня документація означала б
зворотний. Таким чином, умова прив’язки залишається невизначеною, щоб уникнути порушення історії
сценарії, що спираються на цю недокументовану функцію.
Майбутнє НАПРЯМКИ
Ні.
Використовуйте exprposix онлайн за допомогою служб onworks.net