- Использование оператора «Если»
- Использование оператора «If-Else»
- Использование оператора «If-Elif-Else»
- Использование оператора «If» для проверки пустой переменной
- Использование оператора «If» с логическим оператором
- Использование вложенных операторов «If»
- Использование оператора «If» для проверки существования файла
- Использование оператора «If» для проверки существования каталога
- Использование оператора «If» с регулярным выражением
- Использование оператора «Case»
Использование оператора «Если»
В этом примере показано простое использование оператора if в Bash. Для сравнения числовых значений в Bash можно использовать шесть типов операторов сравнения. Это «-eq» (равно), «-ne» (не равно), «-le» (меньше чем равно), «-ge» (больше чем равно), «-lt» (меньше чем) и « -gt» (больше чем). Использование «-lt» и «-eq» показано в следующем сценарии, независимо от того, меньше ли число 99 или оно не было проверено с помощью оператора «-lt». Число четное или нечетное и проверяется оператором «-eq».
#!/бин/баш
#Присваиваем числовое значение
( ( число '=' пятьдесят ) )
#Проверьте числовое значение, используя оператор if
если [ $номер -lt 99 ]
затем
эхо «Номер действителен».
быть
#Проверяем, четное число или нет
если [ $ ( ( $номер % 2 ) ) -экв 0 ]
затем
эхо «Число четное».
быть
Выход :
После выполнения предыдущего скрипта появится следующий вывод:
Использование оператора «If-Else»
Использование оператора if-else показано в следующем сценарии. Строковое значение берется у пользователя и проверяется, является ли оно «СИНИМ» или нет, с помощью оператора «if-else».
#!/бин/баш
#Возьмем строковое значение от пользователя
читать -п «Введите свой любимый цвет:» цвет
#Проверьте значение строки с помощью оператора if-else
если [ ${цвет^^} == 'СИНИЙ' ]
затем
эхо «Хорошо, синий цвет доступен».
еще
эхо ' $цвет не доступен.'
быть
Выход :
Следующий вывод появляется после выполнения предыдущего сценария, если в качестве входных данных выбран «красный»:
Следующий вывод появляется после выполнения предыдущего скрипта, если в качестве входных данных выбран «синий»:
Использование оператора «If-Elif-Else»
Использование оператора if-elif-else показано в следующем сценарии. Число берется у пользователя и проверяется с различными значениями, пока не будет найдено какое-либо совпадение. Если какое-либо совпадение обнаружено, выводится соответствующее сообщение. Если совпадение не найдено, выводится сообщение по умолчанию.
#!/бин/баш#Возьмем значение идентификатора пользователя
читать -п «Введите свой серийный номер:» сериал
#Проверьте введенное значение с помощью оператора if-elif-else
если [ $серийный == '4523' ]
затем
эхо «Вы выбраны в группу А».
Элиф [ $серийный == '8723' ]
затем
эхо «Вы выбраны в группу Б».
Элиф [ $серийный == '3412' ]
затем
эхо «Вы выбраны в группу С».
еще
эхо «Вы не выбраны» .
быть
Выход:
Следующий вывод появляется после выполнения сценария со значением 8723:
Следующий вывод появляется после выполнения сценария со значением 9078:
Использование оператора «If» для проверки пустой переменной
Метод проверки того, пуста ли переменная без использования оператора «if», показан в следующем скрипте. Для выполнения этой задачи в операторе if используется опция «-z».
#!/бин/баш#Возьмем значение идентификатора пользователя
читать -п «Введите свой серийный номер:» сериал
#Проверяем, пуста ли переменная или нет
если [ ! -С $серийный ]
затем
#Проверьте введенное значение с помощью оператора if-elif-else
если [ $серийный == '690' ]
затем
эхо «Вы выбраны в команду-1».
Элиф [ $серийный == '450' ]
затем
эхо «Вы выбраны в команду-2».
еще
эхо «Вы не выбраны» .
быть
еще
эхо «Серийный номер не указан».
быть
Выход :
Следующий вывод появляется после выполнения скрипта со значением 690:
Следующий вывод появляется после выполнения сценария, если не введено никакое входное значение:
Использование оператора «If» с логическими операторами
В условном операторе Bash можно использовать три типа логических операторов. Это логическое ИЛИ (||), логическое И (&&) и логическое НЕ (!). Значение кода берется у пользователя. Если входное значение не пустое, оно проверяется с помощью двух значений кода с использованием логического ИЛИ. Если значение совпадает с каким-либо кодом, выводится соответствующее сообщение. Если соответствующий код не найден, печатается сообщение по умолчанию.
#!/бин/баш#Возьмем код курса у пользователя
читать -п «Введите код курса:» код
#Проверяем, пуста ли переменная или нет
если [ ! -С $код ]
затем
#Проверьте введенное значение с помощью оператора if-elif-else
если [ [ $код == 'CSE-106' || $код == 'CSE-108' ] ]
затем
эхо «Курс ЕГЭ».
Элиф [ [ $код == 'ББА-203' || $код == 'ББА-202' ] ]
затем
эхо «Курс BBA».
еще
эхо «Неверный код курса».
быть
еще
эхо «Код курса не указан».
быть
Выход :
Следующий вывод появляется после выполнения сценария с входным значением «CSE-108»:
Следующий вывод появляется после выполнения сценария с входным значением «BBA-56»:
Использование вложенных операторов «If»
Когда условие «if» используется внутри другого условия «if», оно называется вложенным оператором «if». Метод использования вложенного «if» показан в следующем скрипте. У пользователя берутся два значения оценки. Если входные значения не пусты, первое условие «if» проверяет, превышает ли значение «$theory» 60 или нет. Если первое условие «if» возвращает «истина», второе условие «if» проверяет, превышает ли значение «$lab» 50 или нет. Если второе условие «if» также возвращает «истину», выводится сообщение об успехе. В противном случае печатается сообщение об ошибке.
#!/бин/баш#Сними оценку теории
читать -п «Введите отметку теории:» теория
#Возьми лабораторную отметку
читать -п «Введите отметку лаборатории:» лаборатория
#Проверяем, пусты ли переменные или нет
если [ [ ! -С $теория && ! -С $лаборатория ] ]
затем
#Проверьте входные значения с помощью вложенного оператора if
если [ $теория -ге 60 ]
затем
если [ $лаборатория -ге пятьдесят ]
затем
эхо «Вы прошли».
еще
эхо «Вы потерпели неудачу».
быть
еще
эхо «Вы потерпели неудачу».
быть
еще
эхо «Теория или лабораторная оценка пуста».
быть
Выход :
Следующий вывод появляется, если оба или одно из входных значений пусты:
Следующий вывод появляется, если 78 принимается за теорию, а 45 — за лабораторную работу. Здесь второе условие «if» возвращает «false»:
Следующий вывод появляется, если 67 принимается как оценка по теории, а 56 — как оценка по лабораторной работе. Здесь оба условия «if» возвращают «истину»:
Следующий вывод появляется, если 50 взято за теоретические оценки, а 80 — за лабораторные. Здесь первое условие «if» возвращает «false»:
Использование оператора «If» для проверки существования файла
Существование файла можно проверить с помощью bash-скрипта двумя способами. Один из них использует оператор «-f» со скобками «[]». Другой вариант — использование команды «test» и оператора «-f». Берется имя файла и проверяется существование файла с использованием условия «if» с оператором «-f». Затем берется другое имя файла и проверяется существование файла с помощью оператора «if» с командой «test» и оператором «-f».
#!/бин/баш#Возьмем имя файла
читать -п «Введите имя файла:» фн1
#Проверяем, существует файл или нет, не используя `test`
если [ -ф $fn1 ]
затем
эхо ' $fn1 Файл существует.'
еще
эхо ' $fn1 файл не существует.'
быть
#Добавить новую строку
эхо
#Возьмем другое имя файла
читать -п «Введите другое имя файла:» фн2
#Проверьте, существует ли файл или нет, используя `test`
если тест -ф $fn2 ; затем
эхо ' $fn2 Файл существует.'
#Проверьте, пуст ли файл или нет, используя `test`
если тест -С $fn2 ; затем
эхо ' $fn2 файл пуст».
еще
эхо ' $fn2 файл не пуст».
быть
еще
эхо ' $fn2 файл не существует.'
быть
Выход :
Следующий вывод появляется после выполнения сценария с использованием в качестве имен файлов «test.txt» и «test.txt». Согласно выводам, оба файла существуют в текущем местоположении, а файл «testing.txt» пуст:
Следующий вывод появляется после выполнения сценария с использованием в качестве имен файлов «f1.txt» и «test.txt». Согласно выводам, файл «f1.txt» не существует в текущем местоположении и файл «test.txt» не пуст:
Использование оператора «If» для проверки существования каталога
Существование каталога можно проверить с помощью сценария Bash двумя способами, как и файл. Один из них использует оператор «-d» со скобками «[]». Другой вариант — использование команды «test» и оператора «-d». Берется имя каталога и проверяется существование каталога с использованием условия «if» с оператором «-d». Затем берется другое имя каталога и проверяется существование файла с помощью оператора «if» с командой «test» и оператором «-d».
#!/бин/баш#берём имя каталога
читать -п «Введите имя каталога:» ты1
#Проверяем, существует каталог или нет, не используя `test`
если [ -д $дир1 ]
затем
эхо ' $дир1 каталог существует».
еще
эхо ' $дир1 каталог не существует».
быть
#Добавить новую строку
эхо
#Возьмем другое имя каталога
читать -п «Введите другое имя каталога:» реж.2
#Проверьте, существует ли файл или нет, используя `test`
если тест -д $дир2
затем
эхо ' $дир2 каталог существует».
еще
эхо ' $дир2 каталог не существует».
быть
Выход :
Следующий вывод появляется после выполнения сценария с именами каталогов «temp» и «files». Согласно выводу, оба каталога существуют в текущем местоположении. Затем выполняется команда «ls» для проверки содержимого каталогов:
Следующий вывод появляется после выполнения сценария с именами каталогов «тестирование» и «новый». Согласно выводу, оба каталога не существуют в текущем местоположении. Затем вывод команды «ls» показывает, что оба каталога не существуют:
Использование оператора «If» с регулярным выражением
В следующем скрипте показан метод проверки входных данных с использованием оператора if с регулярным выражением. Здесь два входных значения берутся у пользователя и сохраняются в переменных «$bookname» и «$bookprice». Условие «if» используется в скрипте для проверки того, что переменная «$bookname» содержит все буквенные символы, а переменная «$bookprice» содержит число.
#!/бин/баш#Возьмем название и цену книги у пользователя
эхо -н «Введите название книги:»
читать название книги
эхо -н «Введите цену книги:»
читать цена книги
#Проверьте, что название книги содержит только алфавит
если ! [ [ ' $bookname ' =~ [ А-За-з ] ] ] ; затем
эхо «Название книги недействительно».
еще
эхо «Название книги действительно».
быть
#Проверьте, что цена книги содержит только цифры
если ! [ [ ' $bookprice ' =~ [ 0 - 9 ] ] ] ; затем
эхо «Цена книги может содержать только цифры».
еще
эхо «Цена книги действительна».
быть
Выход :
Следующий вывод появляется после выполнения сценария с входными значениями «Bash Programming» в качестве названия книги и 78 в качестве цены книги:
Следующий вывод появляется после выполнения сценария с входными значениями 90 в качестве названия книги и «Bash» в качестве цены книги:
Использование оператора «Case»
Оператор «case» является альтернативой оператору «if-elif-else», но все задачи оператора «if-elif-else» не могут быть выполнены с помощью оператора «case». Простое использование оператора «case» показано в следующем сценарии. Числовое значение берется у пользователя как значение текущего месяца. Затем соответствующий месяц печатается, если в операторе «case» обнаружено какое-либо соответствующее значение. В противном случае печатается сообщение по умолчанию.
#!/бин/баш#Возьмем значение текущего месяца в цифрах
читать -п «Введите текущий месяц в цифрах:» б_месяц
#Распечатываем текст перед печатью названия месяца
эхо -н 'Название текущего месяца'
#Находим и распечатываем соответствующее название месяца на основе введенных данных
случай $b_месяц в
1 | 01 ) эхо «Январь». ;;
2 | 02 ) эхо «Февраль». ;;
3 | 03 ) эхо 'Маршировать.' ;;
4 | 04 ) эхо 'Апрель.' ;;
5 | 05 ) эхо 'Может.' ;;
6 | 06 ) эхо 'Июнь.' ;;
7 | 07 ) эхо 'Июль.' ;;
8 | 08 ) эхо 'Август.' ;;
9 | 09 ) эхо 'Сентябрь.' ;;
10 ) эхо «Октябрь». ;;
одиннадцать ) эхо «Ноябрь». ;;
12 ) эхо 'Декабрь.' ;;
* ) эхо 'не найдено.' ;;
выходной
Выход :
Следующий вывод появляется после выполнения скрипта со значением 6:
Следующий вывод появляется после выполнения сценария со значением 09:
Следующий вывод появляется после выполнения скрипта со значением 14:
Заключение
Различные варианты использования условной логики с использованием операторов «if» и «case» показаны в 10 примерах этого руководства. Концепция использования условной логики в Bash будет понятна новым пользователям Bash после прочтения этого руководства.