Команда тестирования может использоваться в командной строке Linux для сравнения одного элемента с другим, но чаще используется в сценариях оболочки BASH как часть условных операторов, которые управляют логикой и потоком программ.
Основной пример
Вы можете попробовать эти команды, просто открыв окно терминала.
test 1 -eq 2 && echo "yes" || эхо "нет"
Вышеуказанная команда может быть разбита следующим образом: По сути, команда сравнивает 1 к 2, и если они совпадают, выполняется эхо-оператор «да», который отображает «да», и если они не совпадают, выполняется оператор эха «нет», который отображает «нет». Если вы сравниваете элементы, которые анализируют как числа, вы можете использовать следующие операторы сравнения: Примеры test 1 -eq 2 && echo "yes" || эхо "нет"
(отображает «нет» на экране, потому что 1 не равен 2) test 1 -ge 2 && echo "yes" || эхо "нет"
(отображает «нет» на экране, потому что 1 не больше или равно 2) test 1 -gt 2 && echo "yes" || эхо "нет"
(отображает «нет» на экране, потому что 1 не больше 2) test 1 -le 2 && echo "yes" || эхо "нет"
(отображает «да» на экран, потому что 1 меньше или равно 2) test 1 -lt 2 && echo "yes" || эхо "нет"
(отображает «да» на экран, потому что 1 меньше или равно 2) test 1 -ne 2 && echo "yes" || эхо "нет"
(отображает «да» на экран, потому что 1 не равен 2) Если вы сравниваете элементы, которые анализируются как строки, вы можете использовать следующие операторы сравнения: Примеры test "string1" = "string2" && echo "yes" || эхо "нет"
(отображает «нет» на экране, потому что «string1» не равно «string2») test "string1"! = "string2" && echo "yes" || эхо "нет"
(отображает «да» на экран, потому что «строка1» не соответствует «string2») test -n "string1" && echo "yes" || эхо "нет"
(отображает «да» на экран, потому что «строка1» имеет длину строки больше нуля) test -z "string1" && echo "yes" || эхо "нет"
(отображает «нет» на экране, потому что «строка1» имеет длину строки больше нуля) Если вы сравниваете файлы, вы можете использовать следующие операторы сравнения: Примеры test / path / to / file1 -nt / path / to / file2 && echo "yes"
(Если файл1 более новый, чем файл2, тогда будет отображаться слово «да») test -e / path / to / file1 && echo "yes"
(если файл1 существует, будет отображаться слово «да») test -O / path / to / file1 && echo "yes"
(если у вас есть файл1, тогда отображается слово «да» ») терминология До сих пор все сравнивало одно с другим, но что, если вы хотите сравнить два условия? Например, если у животного 4 ноги и идет «moo», это, вероятно, корова. Просто проверка на 4 ноги не гарантирует, что у вас есть корова, но проверка звука, который она делает, конечно. Чтобы проверить оба условия сразу, используйте следующую инструкцию: test 4 -eq 4 -a "moo" = "moo" && echo "это корова" || эхо "это не корова"
Ключевая часть здесь - это -а, что означает а также . Существует лучший и наиболее часто используемый способ проведения одного и того же теста, а именно: test 4 -eq 4 && test "moo" = "moo" && echo "это корова" || эхо "это не корова"
Еще один тест, который вы, возможно, захотите сделать, - это сравнение двух операторов, и если значение true, выведите строку. Например, если вы хотите проверить, существует ли файл с именем «file1.txt» или существует файл с именем «file1.doc», вы можете использовать следующую команду: test -e file1.txt -o -e file1.doc && echo "file1 exists" || echo "file1 не существует"
Ключевой частью здесь является -o, что означает или же . Существует лучший и наиболее часто используемый способ проведения одного и того же теста, а именно: test -e file1.txt || test -e file1.doc && echo "file1 exists" || echo "file1 не существует" На самом деле вам не нужно использовать тест слова для сравнения. Все, что вам нужно сделать, - заключить оператор в квадратные скобки следующим образом: -e file1.txt && echo "file1 exists" || echo "file1 не существует"
И в основном означает то же, что и тест. Теперь вы знаете это, вы можете улучшить сравнение нескольких условий следующим образом: 4 -eq 4 && "moo" = "moo" && echo "это корова" || эхо "это не корова"-e file1.txt || -e file1.doc && echo "file1 exists" || echo "file1 не существует" Команда тестирования более полезна в сценариях, потому что вы можете проверить значение одной переменной на другую и управлять потоком программы. В стандартной командной строке вы можете использовать его для проверки наличия файла или нет.
Сравнение номеров
Сравнение текста
Сравнение файлов
Сравнение нескольких условий
Исключение тестового ключевого слова
Резюме