GoGPT Best VPN GoSearch

Значок OnWorks

testposix - Интернет в облаке

Запустите testposix в бесплатном хостинг-провайдере OnWorks через Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS

Это команда testposix, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.

ПРОГРАММА:

ИМЯ


test - оценить выражение

СИНТАКСИС


тест [выражение]

[ [выражение] ]

ОПИСАНИЕ


The тест коммунальное предприятие должно оценивать выражение и укажите результат оценки
по статусу выхода. Статус завершения, равный нулю, указывает, что выражение оценено как истинное.
а статус выхода 1 указывает, что выражение оценено как ложное.

Во второй форме утилиты, использующей "[]" , а не тест, приложение должно
убедитесь, что квадратные скобки являются отдельными аргументами.

ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ


The тест полезность не признает "---" аргумент в порядке, указанном
Рекомендация 10 в томе Базовых определений POSIX.1-2008, Раздел 12.2, утилита Синтаксис
Инструкции.

Никакие опции не поддерживаются.

ОПЕРАНДЫ


Приложение должно гарантировать, что все операторы и элементы основных цветов представлены как
отдельные аргументы тест утилита.

Следующие основные цвета могут использоваться для построения выражение:

пути
Верно, если пути разрешает en существующую запись каталога для специального блока
файл. Ложь, если пути не может быть решен, или если пути решает
существующая запись каталога для файла, который не является специальным файлом блока.

−с пути
Верно, если пути разрешается в существующую запись каталога для специального символа
файл. Ложь, если пути не может быть решен, или если пути решает
существующая запись в каталоге для файла, который не является специальным символьным файлом.

-d пути
Верно, если пути преобразуется в существующую запись каталога для каталога. Ложь
if пути не может быть решен, или если пути разрешается в существующий каталог
запись для файла, не являющегося каталогом.

-e пути
Верно, если пути преобразуется в существующую запись каталога. Ложь, если пути
не может быть решен.

-f пути
Верно, если пути преобразуется в существующую запись каталога для обычного файла.
Ложь, если пути не может быть решен, или если пути решает существующий
запись в каталоге для файла, который не является обычным файлом.

−г пути
Верно, если пути преобразуется в существующую запись каталога для файла, имеющего свой
установлен флаг set-group-ID. Ложь, если пути не может быть решен, или если пути
преобразуется в существующую запись каталога для файла, для которого не установлен
установлен флаг идентификатора группы.

−ч пути
Верно, если пути преобразуется в существующую запись каталога для символической ссылки.
Ложь, если пути не может быть решен, или если пути решает существующий
запись в каталоге для файла, который не является символической ссылкой. Если последний компонент
of пути является символической ссылкой, переход по этой символической ссылке не выполняется.

−L пути
Верно, если пути преобразуется в существующую запись каталога для символической ссылки.
Ложь, если пути не может быть решен, или если пути решает существующий
запись в каталоге для файла, который не является символической ссылкой. Если последний компонент
of пути является символической ссылкой, переход по этой символической ссылке не выполняется.

-n string Верно, если длина string не равно нулю; в противном случае - ложь.

-p пути
Верно, если пути разрешается в существующую запись каталога для FIFO. Ложь, если
пути не может быть решен, или если пути разрешается в существующий каталог
запись для файла, который не является FIFO.

-r пути
Верно, если пути разрешается в существующую запись каталога для файла, для которого
будет предоставлено разрешение на чтение из файла, как определено в Раздел 1.1.1.4,
Файл Читать, Написать, и Создание. Ложь, если пути не может быть решен, или если
пути разрешается в существующую запись каталога для файла, для которого разрешение
читать из файла не предоставляется.

-S пути
Верно, если пути преобразуется в существующую запись каталога для сокета. Ложь, если
пути не может быть решен, или если пути разрешается в существующий каталог
запись для файла, который не является сокетом.

−с пути
Верно, если пути разрешается в существующую запись каталога для файла, имеющего
размер больше нуля. Ложь, если пути не может быть решен, или если пути
разрешается в существующую запись каталога для файла, у которого нет размера
больше нуля.

файловый_дескриптор
Истинно, если номер дескриптора файла файловый_дескриптор открыт и связан с
Терминал. Ложь, если файловый_дескриптор не является допустимым номером дескриптора файла, или если
номер дескриптора файла файловый_дескриптор не открыт, или если он открыт, но не
связанный с терминалом.

−и пути
Верно, если пути преобразуется в существующую запись каталога для файла, имеющего свой
установлен флаг set-user-ID. Ложь, если пути не может быть решен, или если пути
преобразуется в существующую запись каталога для файла, для которого не установлен
установлен флаг идентификатора пользователя.

-w пути
Верно, если пути разрешается в существующую запись каталога для файла, для которого
будет предоставлено разрешение на запись в файл, как определено в Раздел 1.1.1.4,
Файл Читать, Написать, и Создание. Ложь, если пути не может быть решен, или если
пути разрешается в существующую запись каталога для файла, для которого разрешение
на запись в файл не дается.

-x пути
Верно, если пути разрешается в существующую запись каталога для файла, для которого
разрешение на выполнение файла (или поиск в нем, если это каталог) будет
предоставлено, как определено в Раздел 1.1.1.4, Файл Читать, Написать, и Создание. Ложь
if пути не может быть решен, или если пути разрешается в существующий каталог
запись для файла, для которого разрешение на выполнение (или поиск) файла не будет
быть предоставленным.

-z string Истинно, если длина строки string равно нулю; в противном случае - ложь.

string Истинно, если строка string не является пустой строкой; в противном случае - ложь.

s1 = s2 Верно, если струны s1 и s2 идентичны; в противном случае - ложь.

s1 != s2 Верно, если струны s1 и s2 не идентичны; в противном случае - ложь.

n1 −экв n2 Истинно, если целые числа n1 и n2 алгебраически равны; в противном случае - ложь.

n1 −ne n2 Истинно, если целые числа n1 и n2 алгебраически не равны; в противном случае - ложь.

n1 −гт n2 Истинно, если целое число n1 алгебраически больше целого n2; в противном случае,
ложный.

n1 −ge n2 Истинно, если целое число n1 алгебраически больше или равно целому числу n2;
в противном случае - ложь.

n1 −lt n2 Истинно, если целое число n1 алгебраически меньше целого n2; в противном случае,
ложный.

n1 −ле n2 Истинно, если целое число n1 алгебраически меньше или равно целому числу n2;
в противном случае - ложь.

выражение1 -a выражение2
Верно, если оба выражение1 и выражение2 верны; в противном случае - ложь. В -a
бинарный примитив остается ассоциативным. Он имеет более высокий приоритет, чем −о.

выражение1 −о выражение2
Верно, если выражение1 or выражение2 правда; в противном случае - ложь. В −о
бинарный примитив остается ассоциативным.

За исключением −ч пути и −L пути праймериз, если пути аргумент
символическая ссылка, тест должен оценивать выражение, разрешая символическую ссылку и
используя файл, на который есть ссылка.

Эти основные цвета можно комбинировать со следующими операторами:

! выражение
Верно, если выражение ложно. Ложь, если выражение правда.

( выражение )
Верно, если выражение правда. Ложь, если выражение ложно. Скобки могут быть
используется для изменения обычного приоритета и ассоциативности.

Основные цвета с двумя элементами формы:

-основной_оператор первичный_операнд

известны как унарный праймериз. Праймериз с тремя элементами в любом из двух
формы:

первичный_операнд -основной_оператор первичный_операнд

первичный_оператор первичный_оператор первичный_оператор

известны как двоичный праймериз. Дополнительные операторы, определяемые реализацией, и
основной_операторs могут быть предоставлены реализациями. Они должны иметь форму -оператор
где первый персонаж оператор это не цифра.

Алгоритм определения приоритета операторов и возвращаемого значения, которое
должен быть сгенерирован на основе количества аргументов, представленных тест. (Однако когда
используя "[...]" форма, последний аргумент не засчитывается в
этот алгоритм.)

В следующем списке $ 1, $ 2, $ 3 и $ 4 представляют аргументы, представленные тест:

0 аргументов:
Выход false (1).

1 аргумент: Exit true (0), если $ 1 не равно нулю; в противном случае выйдите из false.

2 аргументов:
* Если 1 доллар '!', выйдите из true, если $ 2 имеет значение null, false, если $ 2 не равно null.

* Если $ 1 является унарным первичным, выйдите из true, если унарный тест верен, и false, если
унарный тест ложен.

* В противном случае дают неопределенные результаты.

3 аргументов:
* Если $ 2 является двоичным первичным, выполните двоичную проверку $ 1 и $ 3.

* Если 1 доллар '!', отмените проверку двух аргументов $ 2 и $ 3.

* Если 1 доллар '(' и 3 доллара это ')', выполните унарный тест на 2 доллара. В системах, которые
не поддерживают опцию XSI, результаты не указаны, если $ 1 '('
и 3 доллара это ')'.

* В противном случае дают неопределенные результаты.

4 аргументов:
* Если 1 доллар '!', отмените проверку трех аргументов $ 2, $ 3 и $ 4.

* Если 1 доллар '(' и 4 доллара это ')', выполните тест с двумя аргументами для $ 2 и $ 3.
В системах, которые не поддерживают параметр XSI, результаты не указаны.
если $ 1 '(' и 4 доллара это ')'.

* В противном случае результаты не указаны.

> 4 аргумента:
Результаты не указаны.

В XSI-совместимых системах комбинации основных параметров и операторов должны быть
оценивается с использованием правил приоритета и ассоциативности, описанных ранее.
Кроме того, двоичные первичные символы сравнения строк знак равно и знак равно должен иметь
более высокий приоритет, чем любой унарный первичный.

СТАНДИН


Не используется.

ВХОД FILES


Нет.

ОКРУЖАЮЩАЯ СРЕДА ПЕРЕМЕННЫЕ


Следующие переменные среды должны влиять на выполнение тест:

ДЛИННЫЙ Задайте значение по умолчанию для переменных интернационализации, которые не установлены или
нулевой. (См. Том Базовых определений POSIX.1-2008, Раздел 8.2,
Интернационализация Переменные показатели за приоритет интернационализации
переменные, используемые для определения значений категорий локали.)

LC_ALL Если установлено непустое строковое значение, переопределить значения всех остальных
переменные интернационализации.

LC_CTYPE Определите локаль для интерпретации последовательностей байтов текстовых данных
как символы (например, однобайтовые, а не многобайтовые символы в
аргументы).

LC_MESSAGES
Определите языковой стандарт, который следует использовать, чтобы повлиять на формат и содержимое
диагностические сообщения записываются в стандартную ошибку.

НЛПСАТ Определите расположение каталогов сообщений для обработки LC_MESSAGES.

АСИНХРОННЫЙ СОБЫТИЯ


По умолчанию.

стандартный вывод


Не используется.

СТДЕРР


Стандартная ошибка должна использоваться только для диагностических сообщений.

ВЫВОД FILES


Нет.

РАСПРОСТРАНЕНИЯ ОПИСАНИЕ


Нет.

ВЫХОД статус


Должны быть возвращены следующие значения выхода:

0 выражение оценивается как истина.

1 выражение оценено как ложное или выражение скучал.

> 1 Произошла ошибка.

ПОСЛЕДСТВИЯ OF ОШИБКИ


По умолчанию.

The после разделах информативный.

ЗАЯВЛЕНИЕ ИСПОЛЬЗОВАНИЕ


Расширения XSI, определяющие -a и −о двоичные первичные цвета и '(' и ')' Операторы
были отмечены как устаревшие. (Многие выражения, использующие их, неоднозначно определены
грамматики в зависимости от конкретных оцениваемых выражений.) Скрипты, использующие эти
выражения должны быть преобразованы в формы, приведенные ниже. Хотя многие реализации
продолжит поддерживать эти устаревшие формы, скрипты должны быть предельно осторожны, когда
имеет дело с вводимыми пользователем данными, которые можно спутать с этими и другими первичными цветами и
операторы. Если разработчик приложения не знает всех случаев, когда ввод
скрипт, вызовы вроде:

тест "1 $" -a "2 $"

следует записать как:

тест "1 $" && тест "2 $"

чтобы избежать проблем, если пользователь ввел такие значения, как $ 1, установленное на '!' и $ 2 установлен в нуль
нить. То есть, в случаях, когда максимальная переносимость вызывает беспокойство, замените:

тест выражение1 -a выражение2

с:

тест выражение1 && тест выражение2

и заменить:

тест выражение1 −о выражение2

с:

тест выражение1 || тест выражение2

но обратите внимание, что в тест, -a имеет более высокий приоритет, чем −о в то время как "&&" и "||" иметь равные
приоритет в оболочке.

Скобки или фигурные скобки могут использоваться в командном языке оболочки для группирования.

При использовании скобок необходимо использовать sh; например:

тест \( выражение1 -a выражение2 \) −о выражение3

Эта команда не всегда переносима даже в XSI-совместимых системах в зависимости от
выражения, указанные выраж1, выраж2 и выраж3. Вместо этого можно использовать следующую форму:

( тест выражение1 && тест выражение2 ) || тест выражение3

Две команды:

тест "1 $"
тест ! "1 $"

не может надежно использоваться в некоторых исторических системах. Неожиданные результаты произойдут, если
такой string выражение, и $ 1 расширен до '!', '(', или известный унарный первичный.
Лучшими конструкциями являются:

тест -n "1 $"
тест -z "1 $"

соответственно.

Исторические системы также оказались ненадежными, учитывая общую конструкцию:

тест "$ response" = "ожидал нить"

Один из следующих вариантов - более надежная форма:

тест "X $ ответ" = "Ожидается X нить"
тест "ожидал нить" = "$ response"

Обратите внимание, что вторая форма предполагает, что ожидается string нельзя спутать ни с одним
унарный первичный. Если ожидается string начинается с '-', '(', '!', или даже знак равно, первая форма
следует использовать вместо этого. Используя предыдущие правила без расширений, помеченных XSI, любые
из трех форм сравнения является надежным при любом вводе. (Однако обратите внимание, что
строки во всех случаях заключаются в кавычки.)

Поскольку двоичные первичные числа сравнения строк, знак равно и знак равно, имеют более высокий приоритет
чем любой унарный первичный элемент в случае более 4 аргументов, могут произойти неожиданные результаты
если аргументы не подготовлены должным образом. Например, в:

тест -d $1 −о -d $2

Если $ 1 оценивает возможное имя каталога знак равно, первые три аргумента
рассматривается сравнение строк, которое вызовет синтаксическую ошибку, когда второй -d is
столкнулся. Одна из следующих форм предотвращает это; второй предпочтительнее:

тест \( -d "1 $" \) −о \( -d "2 $" \)
тест -d "1 $" || тест -d "2 $"

Также в случае, когда аргумент больше 4:

тест "1 $" = "летучая мышь" -a "2 $" = «Бал»

синтаксические ошибки возникают, если $ 1 оценивается как '(' or '!'. Одна из следующих форм предотвращает
это; третий предпочтительнее:

тест «X $ 1» = «Xbat» -a «X $ 2» = «Xball»
тест "1 $" = "летучая мышь" && тест "2 $" = «Бал»
тест «X $ 1» = «Xbat» && тест «X $ 2» = «Xball»

ПРИМЕРЫ


1. Выйти, если нет двух или трех аргументов (два варианта):

if [ $# −ne 2 ] && [ $# −ne 3 ]; тогда выход 1; fi
if [ $# −lt 2 ] || [ $# −гт 3 ]; тогда выход 1; fi

2. Выполните MkDir если каталог не существует:

тест ! -d темпдир && MkDir темпдир

3. Подождите, пока файл станет нечитаемым:

в то время как тест -r файл
do
спать 30
сделанный
эхо '"файл" is нет дольше удобочитаемый'

4. Выполните команду, если аргумент - одна из трех строк (два варианта):

if [ "1 $" = "груша" ] || [ "1 $" = "виноград" ] || [ "1 $" = "яблоко" ]
тогда
команду
fi

case "$ 1" в
груша | виноград | яблоко) команду ;;
ESAC

ОБОСНОВАНИЕ


Условная команда, производная от KornShell (двойная скобка [[]]) был удален из оболочки
описание командного языка в раннем предложении. Были высказаны возражения, что реальная
проблема в неправильном использовании тест команда ([), а помещать его в оболочку - неправильный путь
решить проблему. Вместо этого правильная документация и новое зарезервированное слово оболочки (!) находятся
достаточно.

Тесты, требующие нескольких тест операции могут выполняться на уровне оболочки, используя
индивидуальные призывы тест логики команд и оболочки, а не использовать
подверженные ошибки −о флаг тест.

XSI-совместимые системы поддерживают более четырех аргументов.

XSI-совместимые системы поддерживают комбинирование основных цветов со следующими конструкциями:

выражение1 -a выражение2
Верно, если оба выражение1 и выражение2 это правда.

выражение1 −о выражение2
Верно, если хотя бы один из выражение1 и выражение2 это правда.

( выражение )
Верно, если выражение правда.

При вычислении этих более сложных комбинированных выражений используются следующие правила приоритета:
используемый:

* Унарные первичные цвета имеют более высокий приоритет, чем алгебраические бинарные первичные цвета.

* Унарные первичные цвета имеют более низкий приоритет, чем строковые бинарные первичные цвета.

* Унарные и двоичные первичные цвета имеют более высокий приоритет, чем унарные. string первична.

* ! оператор имеет более высокий приоритет, чем -a оператор, а -a оператор имеет
более высокий приоритет, чем −о оператор.

* -a и −о операторы левоассоциативны.

* Скобки можно использовать для изменения обычного приоритета и ассоциативности.

Версии BSD и System V -f не то же самое. Определение BSD было:

-f файл Верно, если файл существует и не является каталогом.

Версия SVID (правда, если файл существует и является обычным файлом) была выбрана для этого
том POSIX.1-2008, потому что его использование соответствует , −с, -d и -p операнды
(файл существует и является файлом определенного типа).

The -e первичный, обладающий аналогичной функциональностью с оболочкой C, был
добавлен, потому что он обеспечивает единственный способ для сценария оболочки узнать, существует ли файл
не пытаясь открыть файл. Поскольку реализациям разрешено добавлять дополнительный файл
типы, переносимый скрипт не может использовать:

тест Foo −о −с Foo −о -d Foo −о -f Foo −о -p Foo

чтобы узнать, если Foo это существующий файл. В исторических системах BSD наличие файла
можно определить по:

тест -f Foo −о -d Foo

но не было простого способа определить, что существующий файл был обычным файлом. Рано
предложение использовал KornShell -a первичный (с тем же значением), но он был изменен на -e
потому что были опасения по поводу высокой вероятности того, что люди перепутают -a первичный
с -a бинарный оператор.

Следующие параметры не были включены в этот том POSIX.1-2008, хотя они
предоставляется некоторыми реализациями. Эти операнды не должны использоваться в новых реализациях.
для других целей:

-k файл Верно, если файл существует и его липкий бит установлен.

файл Верно, если файл это непрерывный файл.

−V файл Верно, если файл это файл версии.

Следующий вариант не был включен, потому что он не был задокументирован в большинстве реализаций,
был удален из некоторых реализаций (включая System V), а функциональность
предоставляется оболочкой (см. Раздел 2.6.2, Параметр расширение.

string Длина строки string.

The , −с, −г, -p, −и и -x операнды являются производными от SVID; исторический BSD не
предоставить их. В -k операнд получен из Системы V; историческая BSD не предоставляет этого.

В исторических системах BSD тест -w каталог всегда возвращал false, потому что тест попробовал
открыть каталог для записи, что всегда терпит неудачу.

Некоторые дополнительные праймериз, недавно изобретенные или из KornShell, появились в начале
предложение как часть условной команды ([[]]): s1 > s2, s1 < s2, ул = описания, ул
!= описания, f1 -нт f2, f1 −от f2 и f1 −эф f2. Они не были перенесены в
тест утилита, когда условная команда была удалена из оболочки, потому что они не
был включен в тест утилита, встроенная в исторические реализации sh утилита.

The файловый_дескриптор primary отображается с обязательным аргументом, потому что грамматика
двусмысленно, если его можно опустить. Исторические реализации позволили опустить его,
обеспечивая значение по умолчанию 1.

Отмечается, что '[' не является частью переносимого набора символов имени файла; однако, поскольку это
должен быть закодирован одним байтом и является частью переносимого набора символов,
Имя этой утилиты образует символьную строку для всех поддерживаемых языков.

БУДУЩЕЕ НАПРАВЛЕНИЯ


Нет.

Используйте testposix онлайн с помощью сервисов onworks.net


Бесплатные серверы и рабочие станции

Скачать приложения для Windows и Linux

Команды Linux

Ad




×
Реклама
❤️Совершайте покупки, бронируйте или заказывайте здесь — никаких затрат, что помогает поддерживать бесплатность услуг.