bash: логическое «И» в условиях
В Bash вы можете использовать логическое «И» для объединения нескольких условий в одном выражении. Для этого существуют два основных метода: использование &&
внутри двойных квадратных скобок [[ ... ]]
или использование -a
внутри одиночных квадратных скобок [ ... ]
.
Вот как это сделать:
1. Использование двойных квадратных скобок [[ ... ]]
Этот метод является более современным и рекомендуется к использованию. Он позволяет использовать логические операторы напрямую:
1 2 3 4 5 6 |
if [[ condition1 && condition2 ]]; then echo "Обе условия истинны." else echo "Одно или оба условия ложны." fi |
Пример
Вот пример с проверкой существования двух файлов:
1 2 3 4 5 6 7 8 9 10 11 |
#!/bin/bash FILE1="/path/to/file1.txt" FILE2="/path/to/file2.txt" if [[ -f "$FILE1" && -f "$FILE2" ]]; then echo "Оба файла существуют." else echo "Хотя бы один файл не существует." fi |
2. Использование одиночных квадратных скобок [ ... ]
Если вы хотите использовать одиночные квадратные скобки, вы можете использовать -a
для логического «И»:
1 2 3 4 5 6 |
if [ condition1 -a condition2 ]; then echo "Обе условия истинны." else echo "Одно или оба условия ложны." fi |
Пример
Вот пример с использованием одиночных квадратных скобок для проверки двух условий: