<Попередній | зміст | Наступна>
Рядкові вирази
Для оцінки рядків використовуються наступні вирази:
Таблиця 27-2: тестові рядкові вирази
Вираз істинний, якщо...
Вираз істинний, якщо...
рядок рядок не є нульовим.
![]()
-n рядок Довжина рядок більше нуля.
![]()
![]()
-z рядок Довжина рядок дорівнює нулю.
string1 = рядок2 рядок1 == рядок2
рядок1 і рядок2 рівні. Можуть використовуватися одинарні або подвійні знаки рівності, але використання подвійних знаків рівності є більш переважним.
![]()
![]()
![]()
![]()
string1 != string2 string1 та string2 не рівні. string1 > string2 string1 сортує після string2. string1 < string2 string1 сортує раніше string2.
![]()
попередження: > та < Оператори виразу повинні бути в лапках (або екрануватися зворотною косою рискою), коли вони використовуються разом тест. Якщо це не так, оболонка інтерпретує їх як оператори переспрямування з потенційно руйнівними результатами. Також зверніть увагу, що в той час як бити У документації зазначено, що порядок сортування відповідає порядку зіставлення поточної локалі, але ні. ASCII (POSIX) порядок використовується у версіях бити до 4.0 включно.
![]()
Ось скрипт, який включає рядкові вирази:
#! / бін / баш
# test-string: оцінити значення рядка ANSWER=maybe
якщо [ -z "$ВІДПОВІДЬ" ]; тоді
echo «Відповіді немає». >&2 вихід 1
fi
if [ "$ANSWER" = "так" ]; потім луна «Відповідь ТАК».
elif [ "$ANSWER" = "ні" ]; потім луна «Відповідь НІ».
elif [ "$ANSWER" = "можливо" ]; потім луна "Відповідь МОЖЕ".
ще
echo «Відповідь НЕВІДОМА».
fi
#! / бін / баш
# test-string: оцінити значення рядка ANSWER=maybe
якщо [ -z "$ВІДПОВІДЬ" ]; тоді
echo «Відповіді немає». >&2 вихід 1
fi
if [ "$ANSWER" = "так" ]; потім луна «Відповідь ТАК».
elif [ "$ANSWER" = "ні" ]; потім луна «Відповідь НІ».
elif [ "$ANSWER" = "можливо" ]; потім луна "Відповідь МОЖЕ".
ще
echo «Відповідь НЕВІДОМА».
fi
У цьому скрипті ми оцінюємо константу ВІДПОВІДЬ. Спочатку визначаємо, чи порожній рядок. Якщо це так, ми завершуємо сценарій і встановлюємо статус виходу в один. Зверніть увагу на переспрямування, яке застосовується до команди echo. Це перенаправляє повідомлення про помилку «Відповіді немає». до стандартної помилки, що є правильним для повідомлень про помилки. Якщо рядок не порожній, ми оцінюємо значення рядка, щоб побачити, чи дорівнює воно «так», «ні» чи «можливо». Ми робимо це за допомогою Еліф, що є скороченням від «Інакше якщо». З допомогою Еліф, ми можемо побудувати більш складний логічний тест.
документація