Вход/Регистрация
Краткое введение в программирование на Bash
вернуться

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

Шрифт:

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

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

else

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

fi

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

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

11

находятся слева от клавиши 1. (прим. перев.)

Примечание:Статья Wildcards, Quotes, Back Quotes, Apostrophes in shell commands ( * ? [] ” ‘ ‘) прекрасно описывает использование специальных символов. Пожалуйста, ознакомьтесь с ней в случае, если вы не знакомы с использованием этих специальных символов в скриптах оболочки. Ниже приведено краткое объяснение использования некоторых из них.

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

$ mkdir hello world

$ ls -F

hello/ world/

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

$ mkdir “hello world”

$ ls -F

hello/ hello world/ world/

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

12

Главным образом, дело в том, что bash воспринимает пробел как разделитель всего, что только можно - опций, аргументов, отдельных команд. Внутри двойных кавычек пробел теряет свое специальное значение. (прим. перев.)

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

#!/bin/bash

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

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

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

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

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

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

$ mkdir 'hello world'

$ ls -F

hello world/

Обратные кавычки сильно отличаются от двойных и одинарных. Они не могут использоваться для сохранения пробелов. Если вы помните, выше мы использовали такую строку:

x=$(expr $x + 1)

Как вы уже знаете, результатом работы этой команды будет то, что выражение $х + 1 присваивается переменной x. Того же результата можно достичь и с использованием обратных кавычек:

x='expr $x + 1′

Какой тип кавычек лучше использовать? Тот, что вам больше нравится. Изучая скрипты вы найдете, что обратные кавычки используются чаще, чем запись $(…) . Тем не менее, я считаю, $ (…) легче читать, особенно если у вас код наподобие этого:

#!/bin/bash

echo “I am 'whoami'” [13]

Это только начало. Вы узнаете еще много чего интересного в заключительной части этой статьи [14] . А пока вы ее ждете - удачного вам написания скриптов...

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

Для тех, кому невтерпеж, и кто считает, что справится с большим пособием: Advanced Bash-Scripting Guide (на русском)

13

На мой взгляд, лучше использовать именно запись типа $(...), потому что запись в обратных кавычках и одинарных можно легко перепутать при наборе кода и при его чтении. (прим. перев.)

14

надеюсь со временем, как только текст появится, осилить и его перевод. (прим. перев.)

Часть II

В второй статье Гарольд продолжает свое первоклассное введение в программирование на bash. На этот раз он объясняет, как выполнять арифметические операции и определять функции в bash-скриптах. Завершается статья введением в такие понятия как чтение пользовательского ввода, обработка скриптом аргументов, перехватывание сигналов и обработка кодов завершения программ.

Безусловно, результаты прочтения превзойдут все ожидания! После этой статьи вас уже нельзя будет назвать новичком. Ведь вы на пути к тому, чтоб называться мастером программирования на bash!

  • Читать дальше
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: