test
Команды используются для проверки истинности определенного условия. Он может выполнять числовое, символьное и файловое тестирование.
1. Численный тест
-eq
равный-ne
не равен-gt
больше, чем-ge
больше или равно-lt
меньше, чем-le
меньше или равно
Например, мы можем проверить, равны ли две переменные:
num1=100
num2=200
if test $num1 -eq $num2
then
echo 'Two values are equal!'
else
echo 'Two values are not equal!'
fi
2. Тест строки
=
равный!=
не равен-z
Независимо от того, равна ли длина строки 0, возвращает true, если длина равна 0.-n
Если длина строки равна 0, возвращает true, если длина не равна 0.
Например, мы можем проверить, одинаковы ли две строки:
str1="hello"
str2="world"
if test str1 = str2
then
echo 'Two strings are the same!'
else
echo 'Two strings are different!'
fi
3. Проверка файла
-e
Файл существует?-d
Существует ли он и является ли он каталогом-f
Существует ли он и является ли он файлом-r
Существует ли файл и доступен ли он для чтения-w
Существует ли файл и доступен ли он для записи-x
Существует ли файл и является ли он исполняемым
Например, мы можем проверить, существует ли файл и является ли он каталогом:
dir_path="./my_dir"
if test -d $dir_path
then
echo 'The directory exists!'
else
echo 'The directory does not exist!'
fi
Примечание. [
Это test
упрощенная версия , поэтому следующие два способа записи эквивалентны:
if test $a -eq $b if [ $a -eq $b ]