exprposix - Інтернет у хмарі

Це команда 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



Найновіші онлайн-програми для Linux і Windows