- 10.4. Операторы выбора
- Оператор case в Bash
- синтаксис оператора case
- Пример заявления case
- Выводы
- Bash оператор Case
- Bash Case Statement
- В этом руководстве мы рассмотрим основы case оператора Bash и покажем, как его использовать в сценариях оболочки.
- Синтаксис оператора case
- Пример описания случая
- Вывод
- BASH Case Command
- Example-1: simple case statement
- Example-2: multiple case statement with pipe
- Example-3: How to quit from case/esac statement block
- Example-4: Checking empty command line argument value
- Example-5: multiple case statement based on user input
- Example-6: Check variable in the bash case statement
- Conclusion
- About the author
- Fahmida Yesmin
10.4. Операторы выбора
Инструкции case и select технически не являются циклами, поскольку не предусматривают многократное исполнение блока кода. Однако, они, как и циклы, управляют ходом исполнения программы, в зависимости от начальных или конечных условий.
Конструкция case эквивалентна конструкции switch в языке C/C++. Она позволяет выполнять тот или иной участок кода, в зависимости от результатов проверки условий. Она является, своего рода, краткой формой записи большого количества операторов if/then/else и может быть неплохим инструментом при создании разного рода меню.
Заключать переменные в кавычки необязательно, поскольку здесь не производится разбиения на отдельные слова. Каждая строка с условием должна завершаться правой (закрывающей) круглой скобкой ) . Каждый блок команд, отрабатывающих по заданному условию, должен завершаться двумя символами точка-с-запятой ;; . Блок case должен завершаться ключевым словом esac ( case записанное в обратном порядке). Пример 10-24. Использование case Пример 10-25. Создание меню с помощью case Очень хороший пример использования case для анализа аргументов, переданных из командной строки. Пример 10-26. Оператор case допускает использовать подстановку команд вместо анализируемой переменной Оператор case допускает использование шаблонных конструкций. Пример 10-27. Простой пример сравнения строк Пример 10-28. Проверка ввода Оператор select был заимствован из Korn Shell, и является еще одним инструментом, используемым при создании меню. Этот оператор предлагает пользователю выбрать один из представленных вариантов. Примечательно, что select по-умолчанию использует в качестве приглашения к вводу (prompt) — PS3 ( #? ), который легко изменить. Пример 10-29. Создание меню с помощью select Если в операторе select список in list не задан, то в качестве списка будет использоваться список аргументов ( $@), передаваемый сценарию или функции. Сравните это с поведением оператора цикла в котором не задан список аргументов. Пример 10-30. Создание меню с помощью select в функции Источник Оператор case в BashОператор case bash обычно используется для упрощения сложных условных выражений, когда у вас есть несколько разных вариантов. Использование оператора case вместо вложенных операторов if поможет вам сделать ваши сценарии bash более читабельными и простыми в обслуживании. Оператор case Bash имеет аналогичную концепцию с оператором switch Javascript или C. Основное отличие состоит в том, что в отличие от оператора C switch оператор case в Bash не продолжает поиск совпадения с шаблоном после того, как он нашел один и выполнил операторы, связанные с этим шаблоном. В этом руководстве мы рассмотрим основы оператора case в Bash и покажем вам, как использовать его в сценариях оболочки. синтаксис оператора caseОператор case Bash имеет следующую форму:
Пример заявления caseВот пример использования оператора case в сценарии bash, который будет печатать официальный язык данной страны: Сохраните настраиваемый сценарий как файл и запустите его из командной строки. Скрипт попросит вас ввести страну. Например, если вы наберете «Литва», он будет соответствовать первому шаблону, и будет выполнена команда echo в этом предложении. Сценарий напечатает следующий вывод: Если вы введете страну, которая не соответствует никакому другому шаблону, кроме подстановочного знака звездочки по умолчанию, скажем, Аргентины, сценарий выполнит команду echo внутри предложения по умолчанию. ВыводыК настоящему времени вы должны хорошо понимать, как писать операторы case bash. Они часто используются для передачи параметров сценарию оболочки из командной строки. Например, сценарии инициализации используют операторы case для запуска, остановки или перезапуска служб. Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии. Источник Bash оператор CaseBash Case StatementВ этом руководстве мы рассмотрим основы case оператора Bash и покажем, как его использовать в сценариях оболочки.Инструкция bash case обычно используется для упрощения сложных условий, когда у вас есть несколько различных вариантов выбора. Использование case оператора вместо вложенных if операторов поможет вам сделать ваши bash-сценарии более удобочитаемыми и более простыми в обслуживании. Оператор Bash case имеет аналогичную концепцию с switch оператором Javascript или C. Основное отличие состоит в том, что, в отличие от switch оператора C, оператор Bash case не продолжает поиск соответствия шаблону после того, как он нашел один и выполнил операторы, связанные с этим шаблоном. Синтаксис оператора caseОператор Bash case принимает следующую форму:
Пример описания случаяВот пример использования case оператора в скрипте bash, который будет печатать официальный язык данной страны: Сохраните пользовательский скрипт в виде файла и запустите его из командной строки. Скрипт попросит вас ввести страну. Например, если вы введете «Литва», он будет соответствовать первому шаблону, и echo команда в этом предложении будет выполнена. Скрипт выведет следующий вывод: Если вы введете страну, которая не соответствует ни одному другому шаблону, кроме подстановочного символа по умолчанию, скажем, Аргентина, скрипт выполнит echo команду внутри предложения по умолчанию. ВыводК настоящему времени вы должны хорошо понимать, как писать case операторы bash . Они часто используются для передачи параметров в сценарий оболочки из командной строки. Например, сценарии инициализации используют case операторы для запуска, остановки или перезапуска служб. Источник BASH Case CommandBash case command is used to take proper action by comparing data like if statement. It works like a switch-case statement of other standard programming languages. This command starts with ‘case’ statement and closes by ‘esac’ statement. No break statement is used in the case command and double bracket (;;) is required to mention the statement(s) for any particular matching. This command expands the expression and tries to match with the given pattern and the exit status code of this command will be zero if no matching will be found. Some common examples of case statements are shown in this tutorial. Example-1: simple case statementA single conditional expression is used in bash case command to generate the output based on the matching condition. Create a bash file named case1.sh with the following bash script. The script will take a string value and match the value with each expression. The following script will generate “No Entry Found” if no matching expression exists, #!/bin/bash read name The file is executed with a valid and invalid input here to test the output. Example-2: multiple case statement with pipeMultiple case expressions can be applied in the bash script to execute different types of statements. Pipe ( | ) symbol can be used to assign the multiple expressions. Create a bash file named case2.sh with the following script. After running the script, if the input value matches with any expression then the corresponding text value will be printed. #!/bin/bash read ID This script also works like the previous example. The only difference is that the multiple expression values are tested for a single output. Example-3: How to quit from case/esac statement blockWhen the bash case command is used under an infinite loop the exit command is required to use to terminate the loop. This example shows how these types of the task can be done. Create a text file named case3.sh with the following script. This script will take any number from 1 to 3 as input. If the input is 1 then two numbers will be added, if the input is 2 then two numbers will be subtracted and if the input number is 3 then two numbers will be multiplied. The output will be “Invalid entry” if the input number is more than 3 or less than 1 or empty. while ( true ) echo «Type 1 or 2 or 3» The script will continue to execute until ctrl+c will be pressed. Example-4: Checking empty command line argument valueCommand line argument variable can be used in the bash case statement. Create a file named case4.sh with the following script that will check the value of the second argument variable. Here, the script is executed without any second command line argument value for the first time and the output shows “The second argument is empty”. When the script is executed with a second command line argument value for the second time then no output is shown. Example-5: multiple case statement based on user inputCreate a bash file named case5.sh with the following script. The script will take month name as user input. If the month name match with any case value then a particular text message will be assigned into the variable Message. Input value must be the full month name or three characters month name. case5.sh echo «Type the name of a month» January | Jan * ) June | Jun * ) * ) The following output will appear for the input value, ‘March’ or ‘Mar’. Example-6: Check variable in the bash case statementAny string value can be printed by checking the value of the command line argument variable. Create a text file named case6.sh with the following script. In this example, the value of the first argument variable is checked and if the value is empty then a string, “I like bash programming” will be printed. case6.sh case $1 in This script is executed with and without first arguments. There will be no output if no command line argument variable passes. ConclusionDifferent uses of bash case command are shown in this article. If the readers practice these examples properly then it will be easier for them to solve many bash programming problems. About the authorFahmida YesminI am a trainer of web programming courses. I like to write article or tutorial on various IT topics. I have a YouTube channel where many types of tutorials based on Ubuntu, Windows, Word, Excel, WordPress, Magento, Laravel etc. are published: Tutorials4u Help. Источник |