Условные выражения Bash
if
Формат оператора ifв Bash следующий:
if [[ some_test ]]
then
<commands>
fiВот краткий пример, в котором вам будет предложено ввести свое имя, если вы оставили его пустым:
#!/bin/bash
# Bash if statement example
read -p "What is your name? " name
if [[ -z ${name} ]]
then
echo "Please enter your name!"
fiif else
С помощью if-elseоператора вы можете указать действие в случае, если условие в ifоператоре не соответствует. Мы можем объединить это с условными выражениями из предыдущего раздела следующим образом:
#!/bin/bash
# Bash if statement example
read -p "What is your name? " name
if [[ -z ${name} ]]
then
echo "Please enter your name!"
else
echo "Hi there ${name}"
fiВы можете использовать приведенный выше оператор if со всеми условными выражениями из предыдущих глав:
Вот еще один пример оператора if, который проверит ваш текущий статус User IDи не позволит вам запустить скрипт от имени rootпользователя:
Если вы поместите это поверх своего сценария, он закроется, если EUID равен 0, и не выполнит остальную часть сценария. Это обсуждалось на форуме сообщества DigitalOcean .
Вы также можете проверить несколько условий с помощью ifоператора. В этом примере мы хотим убедиться, что пользователь не является ни пользователем с правами администратора, ни пользователем root, чтобы гарантировать, что сценарий не сможет нанести слишком большой ущерб. В этом примере мы будем использовать orоператор, отмеченный ||. Это означает, что любое из условий должно быть истинным. Если бы мы использовали andоператор of &&, то оба условия должны были бы быть истинными.
Если у вас есть несколько условий и сценариев, вы можете использовать elifоператоры ifи elseоператоры.
switch case
Как и в других языках программирования, вы можете использовать caseоператор для упрощения сложных условий, когда есть несколько разных вариантов. Таким образом, вместо использования нескольких операторов ifи if-elseвы можете использовать один caseоператор.
Синтаксис оператора Bash caseвыглядит следующим образом:
Краткое изложение конструкции:
Все
caseутверждения начинаются сcaseключевого слова.В той же строке, что и
caseключевое слово, вам необходимо указать переменную или выражение, за которым следуетinключевое слово.После этого у вас появляются
caseвыкройки, по которым нужно)определить конец выкройки.Вы можете указать несколько шаблонов, разделенных вертикальной чертой:
|.После шаблона вы указываете команды, которые вы хотите выполнить, если шаблон соответствует указанной вами переменной или выражению.
Все предложения должны быть завершены добавлением
;;в конце.Вы можете использовать оператор по умолчанию, добавив
*в качестве шаблона.Чтобы закрыть
caseоператор, используйтеesacключевое слово (регистр в обратном порядке).
Вот пример оператора Bash case:
С помощью этого скрипта мы просим пользователя ввести название марки автомобиля, например Telsa, BMW, Mercedes и т. д.
Затем с помощью caseзаявления мы проверяем название бренда и соответствует ли оно какому-либо из наших шаблонов, и если да, то распечатываем местоположение фабрики.
Если название бренда не соответствует ни одному из наших caseутверждений, мы распечатываем сообщение по умолчанию: an unknown car brand.
Заключение
Я бы посоветовал вам попробовать изменить сценарий и немного поиграть с ним, чтобы вы могли попрактиковаться в том, что вы только что узнали в последних двух главах!
Дополнительные примеры caseоператоров Bash можно найти в главе 16, где мы создадим интерактивное меню в Bash, используя оператор casesдля обработки пользовательского ввода.
Last updated