Описание тега ukrainian-language
Одиночная кавычка против двойных кавычек версии
Давайте определим псевдоним, используя одинарные кавычки:
$ псевдоним д='$(дата)'
Теперь, давайте возьмем определение псевдонима:
$ псевдоним д
псевдоним д='$(дата)'
Заметим, что нет командной подстановки еще не проводилась.
Давайте делать то же самое, но на этот раз с двойными кавычками:
$ псевдоним д="$(дата)"
$ псевдоним д
псевдоним д='ПТН 28 окт 17:01:12 ФДТ 2016'
Потому что используются двойные кавычки, подстановка команд было выполнено раньше псевдоним был определен.
Одиночная кавычка версия
Давайте попробуем выполнить одинарная кавычка версия:
$ псевдоним д='$(дата)'
$ д
Баш: Пт: команда не найдена
Одинарная кавычка версия соответствует работе:
$ $(дата)
Баш: Пт: команда не найдена
В обоих случаях команда подстановки выполняется, когда выполняется команда.
Вариация
Давайте рассмотрим этот псевдоним, который использует подстановку команд и определяется с помощью одиночных кавычек:
$ псевдоним е='эхо $(дата)'
$ е
Пт 28 октября 17:05:29 ФДТ 2016
$ е
Пт 28 октября 17:05:35 ФДТ 2016
Каждый раз, когда мы выполнить эту команду, даты
вычисляется снова. С одинарные кавычки, команда подстановки выполняется, когда псевдоним выполняется, а не когда он определен.