<Предыдущая | Содержание: | Следующая>
Строковые выражения
Следующие выражения используются для оценки строк:
Таблица 27-2: Выражения тестовой строки
Выражение истинно, если ...
Выражение истинно, если ...
string string не равно нулю.
-n string Длина string больше нуля.
-z string Длина string это ноль.
string1 = строка2 строка1 == строка2
строка1 и строка2 равны. Могут использоваться одинарные или двойные знаки равенства, но использование двойных знаков равенства предпочтительнее.
string1 != string2 string1 и string2 не равны. string1 > string2 string1 сортирует после string2. string1 < string2 string1 сортирует до string2.
Предупреждение: > и < операторы выражения должны быть заключены в кавычки (или экранированы обратной косой чертой) при использовании с тестXNUMX. В противном случае они будут интерпретироваться оболочкой как операторы перенаправления с потенциально разрушительными результатами. Также обратите внимание, что хотя колотить в документации указано, что порядок сортировки соответствует порядку сборки текущей локали, но не соответствует. Порядок ASCII (POSIX) используется в версиях колотить до 4.0 включительно.
Вот сценарий, который включает строковые выражения:
#! / Bin / Баш
# test-string: оценить значение строки ANSWER = возможно
если [-z "$ ОТВЕТ"]; тогда
echo "Нет ответа." > & 2 выход 1
fi
если ["$ ANSWER" = "да"]; затем повторите эхо «Ответ ДА».
elif ["$ ANSWER" = "нет"]; затем повторите эхо «Ответ - НЕТ».
elif ["$ ANSWER" = "возможно"]; затем эхо «Ответ МОЖЕТ БЫТЬ».
еще
echo "Ответ НЕИЗВЕСТНЫЙ."
fi
#! / Bin / Баш
# test-string: оценить значение строки ANSWER = возможно
если [-z "$ ОТВЕТ"]; тогда
echo "Нет ответа." > & 2 выход 1
fi
если ["$ ANSWER" = "да"]; затем повторите эхо «Ответ ДА».
elif ["$ ANSWER" = "нет"]; затем повторите эхо «Ответ - НЕТ».
elif ["$ ANSWER" = "возможно"]; затем эхо «Ответ МОЖЕТ БЫТЬ».
еще
echo "Ответ НЕИЗВЕСТНЫЙ."
fi
В этом скрипте мы оцениваем константу ОТВЕТ. Сначала мы определяем, пуста ли строка. Если это так, мы завершаем скрипт и устанавливаем статус выхода равным единице. Обратите внимание на перенаправление, применяемое к команде echo. Это перенаправляет сообщение об ошибке «Нет ответа». к стандартной ошибке, что является правильным при работе с сообщениями об ошибках. Если строка не пуста, мы оцениваем значение строки, чтобы увидеть, равно ли оно «да», «нет» или «возможно». Мы делаем это с помощью Элиф, что является сокращением от «иначе, если». Используя Элиф, мы можем построить более сложный логический тест.