English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Команда test в Shell используется для проверки выполнения某个 условия, она может выполнять тесты числовых, символьных и файловых значений.
Параметр | Объяснение |
---|---|
-eq | Равны, то это истина |
-ne | Не равны, то это истина |
-gt | Больше, то это истина |
-ge | Больше или равно, то это истина |
-lt | Меньше, то это истина |
-le | Меньше или равно, то это истина |
num1=100 num2=100 if test $[num1] -eq $[num2] then echo 'Два числа равны!' else echo 'Два числа не равны!' fi
Результат вывода:
Два числа равны!
В коде [] выполняются базовые арифметические операции, например:
#!/bin/bash a=5 b=6 result=$[a+b] # Внимание: между знаками равенства не должно быть пробелов echo "result равен: $result"
Результат:
result равен: 11
Параметр | Объяснение |
---|---|
= | Равны, то это истина |
!= | Не равны, то это истина |
-z строка | Длина строки равна нулю, то это истина |
-n строка | Длина строки не равна нулю, то это истина |
num1="ru1noob" num2="w3codebox" if test $num1 = $num2 then echo 'Два строки равны!' else echo 'Два строки не равны!' fi
Результат вывода:
Два строки не равны!
Параметр | Объяснение |
---|---|
-e имя_файла | Истина, если файл существует |
-r имя_файла | Истина, если файл существует и является readable |
-w имя_файла | Истина, если файл существует и является writable |
-x имя_файла | Истина, если файл существует и является исполнимым |
-s имя_файла | Истина, если файл существует и содержит по крайней мере один символ |
-d имя_файла | Истина, если файл существует и является каталогом |
-f имя_файла | Истина, если файл существует и является обычным файлом |
-c имя_файла | Истина, если файл существует и является символьным специальным файлом |
-b имя_файла | Истина, если файл существует и является блочным специальным файлом |
cd /bin if test -e ./bash then echo 'Файл существует!' else echo 'Файл не существует!' fi
Результат вывода:
Файл существует!
Кроме того, Shell предоставляет три логических оператора ( -a ), ( -o ) и ( ! ) для соединения тестовых условий, их приоритет: ! наивысший, -a следующий и -o низший. Например:
cd /bin if test -e ./notFile -o -e ./bash then echo 'По крайней мере один файл существует!' else echo 'Два файла не существуют' fi
Результат вывода:
По крайней мере один файл существует!