Читать «Краткое введение в программирование на Bash» онлайн - страница 8

Гарольд Родригес

#!/bin/bash

x=5 # инициализируем х значением 5

# проверяем значение х:

case $x in

0) echo "значение х равно 0"

;;

5) echo "значение х равно 5"

;;

9) echo "значение х равно 9"

;;

*) echo "значение неизвестно"

;;

esac

Оператор case проверяет переменную х на равенство трем значениям. В приведенном примере, он сначала проверит, равен ли х нулю 0, затем равен ли он 5, затем равен ли он 9. И, если все проверки завершились неудачно, скрипт выведет сообщение, что значение x определить не получилось. Помните, что «*» означает «все», и в этом случае, «любое другое значение, помимо указанных явно». Если х имеет любое другое значение, отличное от 0, 5 или 9, то это значение попадает во категорию «*». При использовании сase каждое условие должно заканчиваться двумя точками с запятой.

Зачем нужно использовать case, когда вы можно использовать if? Ниже приведен пример эквивалентного скрипта, написанного с использованием if. Решение о том, что быстрее написать и легче прочесть, предлагается принять самостоятельно:

#!/bin/bash

x=5 # инициализируем х значением 5

if [ "$x" -eq 0 ]; then

echo "Значение х равно 0"

elif [ "$x" -eq 5 ]; then

echo "значение х равно 5"

elif [ "$x" -eq 9 ]; then

echo "значение х равно 9"

else

echo "Значение х определить не удалось"

fi

Использование кавычек

Кавычки играют важную роль в написании скриптов оболочки. Существует три типа кавычек. Это двойные кавычки: «, одинарные ‘ (апостроф) и обратные `. Имеет ли каждый из приведенных видов какое-то особое значение? Да.

Примечание:Статья  прекрасно описывает использование специальных символов. Пожалуйста, ознакомьтесь с ней в случае, если вы не знакомы с использованием этих специальных символов в скриптах оболочки. Ниже приведено краткое объяснение использования некоторых из них.

Двойные кавычки используются главным образом для объединения нескольких слов в строку и сохранения в ней пробелов. Например, «Эта строка содержит пробелы». Строка, заключенная в двойные кавычки рассматривается как единое целое. Например:

$ mkdir hello world

$ ls -F

hello/ world/

Здесь мы создали две директории. Команда mkdir принимает два слова hello и world, как два отдельных аргумента, и поэтому создает два каталога. Теперь посмотрим, а что произойдет, если написать код таким образом:

$ mkdir “hello world”

$ ls -F

hello/ hello world/ world/

Команда создала каталог с именем из двух слов. Кавычки объединили два слова в один аргумент.

Одинарные кавычки в основном используются для работы с переменными. Если переменная находится в двойных кавычках, то к ней можно обратиться через $имя_переменной. Если переменная находится в одинарных кавычках — это не возможно. Чтобы пояснить это приведем пример:

#!/bin/bash

x=5 # задаем х равным 5

# используем двойные кавычки

echo "Используем двойные кавычки, значение х равно $х"

# используем одинарные кавычки

echo 'Используем одинарные кавычки, значение х равно $х'

Почувствовали разницу? Вы можете использовать двойные кавычки, если вы не планируете использовать переменные для строки, которая в них находится. И да, если вам интересно, прямые кавычки также можно использовать для сохранения пробелов в строке тем же способом, что и двойные кавычки