англійськафранцузькаіспанська

Значок OnWorks

dacsexpr - онлайн у хмарі

Запустіть dacsexpr у постачальнику безкоштовного хостингу OnWorks через Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS

Це команда dacsexpr, яку можна запустити в постачальнику безкоштовного хостингу OnWorks за допомогою однієї з наших численних безкоштовних робочих станцій, таких як Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS

ПРОГРАМА:

ІМ'Я


dacsexpr - DACS мовна оболонка виразів і інтерпретатор

СИНТАКСИС


dacsexpr [-x] [dacsoptions[1]] [Містер] [-e експр] [-n] [-p] [-s] [-h | -допомога] [-тест]
[--] [ім'я файлу] [скрипт-арг...]

ОПИС


Ця програма є частиною DACS на.

Команда dacsexpr корисність оцінює DACS вирази (див dacs.exprs(5)[2]). Часто це а
корисна допомога при складанні або тестуванні виразів, які будуть використовуватися в правилах контролю доступу, або
під час налагодження списків керування доступом та директив конфігурації. Поки їх продовжують називати
«виразів» з історичних причин стало можливим писати невеликі програми, і
мова також може бути корисною як проста мова сценаріїв незалежно від решти
DACS.

Якщо надано вираз, він оцінюється, а результат друкується за стандартом
вихід. Можна вказати не більше одного виразу. Якщо -q дається прапор (один з
dacsoptions[1]), нічого не друкується, помилки оцінки виразів приховуються, і
програма завершується відповідним вихід статус[3]; інакше результат записується
стандартний вихід. Якщо ні а -q прапор не дається, ані будь-який прапорець, який контролює ведення журналу
рівень, тоді рівень ведення журналу встановлюється на попередження, що замінює будь-який журнал конфігурації
директива рівня; така поведінка зазвичай зручна.

Якщо вираз не надано, програма зчитує свій стандартний вхід. Якщо вхід не є
виходячи з пристрою термінального типу, програма працює в «пакетному режимі», а підказка є
придушений; в іншому випадку програма працює в «інтерактивному режимі». Коли буде запропоновано ввійти
інтерактивний режим, введіть допомога за допомогу. Якщо читальна лінія(3)[4] функціональність була
налаштовані під час створення програми, доступні редагування командного рядка та історія
інтерактивний режим.

Якщо програма виконується через системний "#!" механізм, один або кілька командних рядків
можна навести аргументи:

#!/usr/local/dacs/bin/dacsexpr -test
// очікувати-точно:17
${x} = 17;

Такі програми завжди використовують файл сценарію як вхідні дані, отже, немає виразів чи інших файлів
можна вказати на "#!" лінія.

Команда Окр простір імен ініціалізується з середовища програми. Наприклад, якщо значення
змінної середовища LOGNAME то бобо ${Env::LOGNAME} буде створено
з цим значенням. Синтаксично недійсні імена змінних мовчки ігноруються.

Примітка:
Директиви конфігурації та Конф Простір імен змінних доступний лише за умови a
файл конфігурації обробляється (наприклад, шляхом надання -uj прапор командного рядка). Це
актуально, наприклад, якщо http()Функція [5] викликається за схемою https
тому що для належної експлуатації знадобиться SSL_PROG[6] директива, яку потрібно налаштувати. Побачити
dacs.conf(5)[7].

ВАРІАНТИ


Якщо вираз або файл ще не вказано, ім’я файлу може відображатися як останній
аргумент. Якщо ім'я файлу є "-", стандартний вхід зчитується.

Містер
Друк налагоджувальної інформації на stderr.

-e експр
Даний вираз обчислюється.

-h
-допомога
Відобразити довідкове повідомлення та вийти.

-n
Не оцінюйте жодних виразів, перевіряйте лише синтаксичні помилки.

-p
Роздрукуйте кінцевий результат у стандартному виводі, якщо він не був придушений -q or
-n. Без цього прапора програма мала б виводити результат.

-s
Якщо один вираз оцінюється з командного рядка або файлу, то
результатом оцінювання є рядок або bstring, вихід буде оточений лапками
якщо цей прапор не вказано.

-тест
Вхідним є тестовий приклад. Тестовий приклад складається з параметрів, за якими слідує вираз.
Може бути нуль або більше параметрів, по одному на рядок, вбудованих у // стиль коментаря:

{ пробіл* "//" пробіл* ім'я параметра «» значення параметра кінець рядка }*

Пробіли перед або після ":" не допускаються. Як окремий випадок, рядки, що мають
наступний формат ігнорується:

пробіл* "///" .* кінець рядка

Перший рядок без параметрів завершує опції і є першим рядком
вираз, який потрібно оцінити.

Ось приклад:

/// Перевірка побітового зсуву
// очікувати-точно:1024
1 << 10

Опція контролює, як має виконуватися тест, і дає очікуваний результат:

очікувати:regex
очікування-регулярний вираз:regex
Рядок результату повинен збігатися regex. Ці дві назви варіантів є еквівалентними.

очікувати-ідентичне:рядок
Рядок результату повинен збігатися рядок точно.

очікувати точно:рядок
Рядок результату повинен збігатися рядок точно, за винятком символу в стилі C
константи (перед яких стоїть зворотна коса риса) в рядок інтерполюються.

код очікування:код
Код результату має збігатися код, що дорівнює 0, якщо результат є Правда, 1, якщо результат
is Помилковий, і 2, якщо сталася помилка. Якщо цей параметр не вказано, код за замовчуванням
0 передбачається.

тип очікування:тип
Тип результату повинен збігатися тип, який може бути цілим, дійсним, рядковим,
bstring, literal або undef.

прапори очікування:прапори
Наразі єдині визнані значення для прапори є rw_namespaces і
ro_namespaces. Перший дозволяє тесту створювати або змінювати змінні в
DACS, Аргументиабо Окр простір імен; за замовчуванням ці простори імен доступні лише для читання. Це
може бути корисним при тестуванні від()[8], наприклад, тому що це дозволяє тест
щоб встановити значення для ${DACS::REMOTE_ADDR}. Поведінка за замовчуванням може бути явною
вибрано, вказавши ro_namespaces.

show-result:{yes | немає}
Результат друкується на стандартному виводі, лише якщо значення параметра є так.

Якщо тест не пройшов, описове повідомлення друкується зі стандартною помилкою. The
статус завершення програми буде 0, якщо тест пройшов успішно, 1 в іншому випадку.

Цей приклад має бути успішним без відображення результату:

// очікувати-точно:2
// очікування-тип:ціле число
/// show-result:yes
1 + 1

Примітка:
Команда DACS дистрибутив містить набір тестів у каталозі src/tests, що
можна запустити для регресійного тестування (виконувати тести з каталогу src). Дещо
функцій, передбачених dacs.exprs(5)[2] також використовуються внутрішньо DACS, так
Важливо, щоб усі тести були успішними навіть для функцій, які не використовуються
з рівня користувача.

-x
Якщо це перший прапор, це вказує на це dacsexpr виконується як a
скрипт за допомогою системного "#!" механізм. Це може бути корисно, якщо програма
евристичний для визначення цього є неправильним. Останнім аргументом має бути ім’я файлу.

--
Цей аргумент явно позначає останній аргумент прапорця. Аргумент імені файлу може
слідуйте.

ПРИКЛАДИ


Наступна команда оцінює аргумент виразу (зверніть увагу, що це один аргумент
до команди) і виводить результат у стандартний вихід:

% dacsexpr -e "1+1"
2
% dacsexpr -e '${Env::USER}'
"бобо"
% dacsexpr -u example.com -e '"FEDERATION_NAME=" . ${Conf::FEDERATION_NAME}'
"FEDERATION_NAME=ПРИКЛАД"
% dacsexpr - abc <
? print("Перший аргумент \"\${Argv::1}\"")
? ТУТ
Перший аргумент - "a"
% кіт впр
#!/usr/local/dacs/bin/dacsexpr

print("Argv[2] є ${Argv::2}");
% chmod 0755 пр
% ./ex foo bar baz
Argv[2] — так

ДІАГНОСТИКА


Якщо виникає помилка, повідомлення може бути записано в stderr, залежно від рівня реєстрації. в
загалом, програма виходить з 0 тоді і тільки тоді, коли все було добре. Якщо командний рядок
Вираз обчислюється, програма виходить із 0, якщо вираз має значення Правда, 1 якщо це
оцінює до Помилковий, і 2, якщо сталася помилка. Якщо явний заклик до вихід () зроблено і ні
сталася умова справжньої помилки, тоді програма завершить роботу зі значенням аргументу.

Використовуйте dacsexpr онлайн за допомогою служб onworks.net


Безкоштовні сервери та робочі станції

Завантажте програми для Windows і Linux

Команди Linux

Ad