Вопросы с тегом «test»

Это касается утилиты Unix «test», также вызываемой как «[», или ее варианта синтаксиса оболочки [[…]]. Для вопросов о тестировании программного обеспечения и настроек используйте тег «testing».

5
Зачем использовать двойные кавычки в тесте [[]]?
Допустим, у нас есть 2 целых числа в скрипте bash: value1=5 value2=3 Тогда зачем нам использовать двойные кавычки в случае теста? Например: if [[ "$value1" -eq "$value2" ]] Почему бы просто не использовать следующее? if [[ $value1 -eq $value2 ]] Для меня двойные кавычки не имеют никакого смысла.
23 bash  shell  quoting  variable  test 


3
Неужели синтаксис не равен материи?
При написании сценариев я обычно пишу свои if со следующим синтаксисом, так как мне легче понять, что то, что будет дальше, не соответствует действительности. if [ ! "$1" = "$2" ]; then Другие говорят, что путь ниже лучше if [ "$1" != "$2" ]; then Дело в том, что когда …
22 shell  test 

3
Сравнивая две строки в Bash
У меня есть следующий ifблок в моем скрипте bash: if [ ${PACKAGENAME} -eq kakadu-v6_4-00902C ]; then echo "successfully entered if block!!" fi Выполнение скрипта не входит в мой ifблок, хотя $PACKAGENAMEоно равно kakadu-v6_4-00902C. Что я делаю не так?

3
Есть ли существенная разница при сравнении переменной в виде строки или целого числа?
Из любопытства, при выполнении сравнения переменных bash (его значение является integer) можно проверить его по некоторому предопределенному значению, объявленному как intили как string. Пример скрипта : #!/bin/bash f1() { [ "$1" == "1" ] && echo "$FUNCNAME: \"1\" compared as string" } f2() { [[ "$1" -eq 1 ]] && …
22 bash  shell  test 


2
Выражение в скобках (без диапазонов), совпадающее с неожиданным символом в bash
Я использую Bash на Linux. Я получаю успех от следующего оператора if, но разве это не должно возвращать код ошибки? if [[ ■ = [⅕⅖⅗] ]] ; then echo yes ; fi Квадрат НЕ равен ни одному из символов, поэтому я не понимаю, почему я получаю код успеха. Для меня …
20 bash  locale  test 


3
Сравнение целых чисел: арифметическое выражение или условное выражение
В Bash два целых числа можно сравнить с помощью условного выражения arg1 OP arg2 OP является одним из -eq, -ne, -lt, -le, -gt, или -ge. Эти арифметические бинарные операторы возвращают true, если arg1 равно, не равно, меньше, меньше или равно, больше или больше или равно arg2 , соответственно. Arg1 и …

3
Скобки в условии if: почему я получаю синтаксические ошибки без пробелов?
Я использую приведенный ниже сценарий для перемещения на два дня назад, когда сценарий запускается в начале двух дней в году, а также для проверки первого и второго дней каждого месяца и перехода на два дня назад. if [$month="01"] && [$day="01"]; then date="$last_month/$yes_day/$last_year" fulldate="$last_month/$yes_day/$last_year" else if [$month="01"] && [$day="02"]; then date="$last_month/$yes_day/$last_year" …

3
Как проверить, что переменная вообще определена в Bash до версии 4.2 с опцией оболочки nounset?
Для версий Bash до "GNU bash, Версия 4.2" есть ли эквивалентные альтернативы -vопции testкоманды? Например: shopt -os nounset test -v foobar && echo foo || echo bar # Output: bar foobar= test -v foobar && echo foo || echo bar # Output: foo
16 bash  test 

3
Баш: я сломал [[<]]
Я писал сценарий bash, и вдруг это поведение началось: [[ 1 &lt; 2 ]]; echo $? # outputs 0 [[ 2 &lt; 13 ]]; echo $? # outputs 1 но -ltработает добротно [[ 1 -lt 2 ]]; echo $? # outputs 0 [[ 2 -lt 13 ]]; echo $? # …
14 bash  test 

5
Как сравнить версию программы в скрипте оболочки?
Предположим, я хочу сравнить gccверсию, чтобы увидеть, установлена ​​ли в системе минимальная версия или нет. Чтобы проверить gccверсию, я выполнил следующее gcc --version | head -n1 | cut -d" " -f4 Выход был 4.8.5 Итак, я написал простое ifутверждение, чтобы проверить эту версию с некоторым другим значением if [ "$(gcc …


2
`test` и` [`- разные двоичные файлы, какая разница?
Я заметил, отвечая на другой вопрос , что testи [являются разными двоичными файлами, но [страница руководство тянет test«с. Помимо требования к финалу ], есть ли разница? Если нет, то почему они являются отдельными двоичными файлами вместо символьных ссылок? (Они также являются bashвстроенными и bashне показывают разницы).

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.