Bash Script — Цитаты и их типы

Опубликовано: 30 Сентября, 2022

Цитирование в сценариях bash — это процесс создания переменных или любого другого контейнера для данных, которые должны быть расширены до буквального значения внутри любой строки, цитирование также используется для других операций. В скрипте bash есть несколько типов методов цитирования. В этой статье мы увидим различные типы цитирования в сценариях Bash.

Типы котировок в BASH

  • Одиночные кавычки
  • Двойные кавычки
  • Назад Цитаты

Одиночные цитаты:

При использовании одинарных кавычек строка анализируется как есть без расширения символов внутри кавычек. Итак, если у нас есть переменная внутри строки, значение не будет расширено, вместо этого символы будут проанализированы как есть.

Допустим, у нас есть переменная с именем name, и мы пытаемся отразить ее значение внутри одинарной кавычки, нам нужно использовать $ для доступа к значению переменной. Но значение не печатается, а команда отображается как есть.

#!/usr/bin/env bash

name="Jim"

echo "This is $name, a developer"

Выход:

Таким образом, одинарные кавычки не очень хороши, если вы хотите использовать расширение переменной и другие связанные с этим вещи. Вы можете закрыть кавычки перед переменной, а затем открыть снова, как при конкатенации, но это не очень удобно для нескольких переменных.

Двойные кавычки:

Чтобы расширить значение переменной внутри строки, мы используем двойные кавычки. Используя двойные кавычки, мы можем расширить буквальное значение переменной, просто добавив к имени переменной префикс $, как было сказано ранее, для доступа к значению с именем переменной.

#!/usr/bin/env bash

name="Jim"

echo "This is $name, a developer"

Выход:

Итак, как мы видим, значение переменной было расширено, и команда работала, как и ожидалось. Значение переменной может быть чем угодно, например целыми числами, строками или любыми символами, которые нельзя расширить дальше.

Не только расширение переменной, но и другие специальные символы, заключенные в двойные кавычки.

#!/usr/bin/env bash

name="Jim"
age=23
languages=("python" "javascript" "java" "C" "Rust")

echo "This is $name, a $age old developer.
${languages[@]}
`pwd`
" Hello WOorld " "

Выход:

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

Мы использовали имя переменной и возраст, чтобы продемонстрировать раскрытие различных типов переменных данных внутри двойных кавычек. Мы даже использовали операторы для печати всего массива, а именно ${array_name[@]}. Мы также добавили обратные кавычки ("), чтобы использовать команду внутри двойных кавычек. И, наконец, символ обратной косой черты для экранирования этих символов, в данном случае двойных кавычек (""). Экранирование символа означает анализ символа таким образом, что он просто обрабатывается как обычный символ, не допуская его операций в качестве специального символа. Некоторыми символами, которые вам нужно экранировать, могут быть $, #, двойные кавычки, одинарные кавычки и т. д.

Экранирование символов в двойных кавычках

Чтобы избежать символов, мы можем использовать перед символом, чтобы проанализировать его как есть. Например, вам нужно напечатать символ $, который вам нужен, чтобы ввести $ для работы по желанию внутри двойных кавычек. Мы использовали », чтобы избежать двойных кавычек, и тем самым мы использовали двойные кавычки внутри двойных кавычек. Итак, чтобы разобрать символ без выполнения специальных операций, нам нужно использовать , чтобы просто напечатать его.

Обратные цитаты (обратные кавычки):

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

#!/usr/bin/env bash

echo `python --version` 
echo `cat wh.txt`
echo `date`

Выход:

Как мы видим здесь, мы можем выполнять команды из скрипта. Это команды, которые можно выполнять в командной строке, да, вы можете использовать определенные команды, такие как cat, pwd и т. д., как в сценарии, но не все команды можно использовать так, как в сценарии. Для выполнения этих команд мы можем использовать обратные кавычки (` `). Они также могут быть вложены в двойные кавычки, как мы видели ранее в примере с двойными кавычками.

Итак, это методы цитирования, которые мы используем в сценарии оболочки для расширения переменных, выполнения команд и выполнения и выполнения других операций/скриптов из сценария оболочки. Кавычки можно использовать для программирования определенных команд и их выполнения/расширения по мере необходимости, заключая команды в соответствующие кавычки.