В Bash можно сравнивать строки разными способами.
🔹 Операторы сравнения строк
| Оператор| Описание
|-----------|---------------------------------|
|
== | Строки равны |
!= | Строки не равны |
< | Меньше по ASCII (нужен [[ ) |
> | Больше по ASCII (нужен [[ ) |
-z | Строка пустая |
-n | Строка не пустая 🔹 Примеры использования
1️⃣ Проверка равенства строк:
str1="hello"
str2="world"
if [[ "$str1" == "$str2" ]]; then
echo "Строки равны"
else
echo "Строки разные"
fi
2️⃣ Проверка, что строка непустая:
if [[ -n "$str1" ]]; then
echo "Переменная str1 содержит: $str1"
fi
3️⃣ Проверка, что строка пустая:
if [[ -z "$str1" ]]; then
echo "Переменная str1 пустая"
fi
4️⃣ Сравнение строк по алфавиту (ASCII-кодам):
if [[ "apple" < "banana" ]]; then
echo "apple идёт раньше banana"
fi
5️⃣ Сравнение строк с
case:
case "$str1" in
"hello") echo "Привет!";;
"bye") echo "Пока!";;
*) echo "Неизвестная команда";;
esac
6️⃣ Игнорируем регистр при сравнении:
str1="Hello"
str2="hello"
if [[ "${str1,,}" == "${str2,,}" ]]; then
echo "Строки равны (без учёта регистра)"
fi
🔹
${str,,} — приводит строку к нижнему регистру (работает в Bash 4+). 👉@bash_srv
