не может понять, что не так: $ echo '' date` '

Что происходит, когда выполняется следующая команда? Объясните, почему и как это исправить:

$ echo '`date`' 

Может кто-нибудь мне помочь?

2 Solutions collect form web for “не может понять, что не так: $ echo '' date` '”

Я предполагаю, что вы бежите

 echo '`date`' 

(обратите внимание на прямые одинарные кавычки) и ожидаем увидеть выходную date . Оболочка никогда не расширяет строки внутри одинарных кавычек; вместо этого вы должны использовать двойные кавычки:

 echo "`date`" 

или просто отбросить их

 echo `date` 

Все это эквивалентно

 date 

хотя, помимо раскола и глобуса оболочки (как указал Стефан Чазелас ), который по умолчанию рухнет пробелами.

Как указано, внешними кавычками являются символы Unicode U + 2018 и U + 2019. Это НЕ обычные одинарные кавычки и не имеют особого значения для оболочки и просто повторяются:

 $ echo '`date`' 'Fri Apr 7 19:55:15 EEST 2017' $ 

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

  • Когда нужно использовать $ () при определении переменных
  • Захват stdout и stderr как отдельные переменные в раковине рыбы
  • Какой особый символ может быть эхом расширяться до моей домашней папки?
  • Ошибки прерывания в подстановке команд с использованием «-o errtrace» (т.е. set -E)
  • Любая причина использовать или учить «...» замену новой разработки?
  • Сохранять определенный результат для переменной оболочки
  • Замена команд и пробелы
  • Bash: замена команд несколькими командами unset / export
  • Linux и Unix - лучшая ОС в мире.