эхо строки с восклицательным знаком

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

Если Вы хотите получить эту информацию от клиента Шеф-повара, не имея дело с сервером Шеф-повара, и затем агрегировать информацию посредством некоторого другого процесса, то то, что Вы хотите, является Ohai, который производит, производит что-то вроде этого: https://gist.github.com/sparr/5265567

7
07.09.2014, 01:44
2 ответа

В команде:

echo "!$"

! $ расширяется bash перед передачей в echo . Внутри двойных кавычек , если включено, раскрытие истории будет выполняться, если вы не выйдете из ! с использованием обратной косой черты \ . bash выполнил расширение, echo здесь ничего не делает, он просто выводит то, что получил.

! $ относятся к последнему аргументу предыдущей команды, который представляет собой строку '! $' .

Во втором примере:

$ echo '!$'
!$
$ echo "!echo "!$""
echo "echo '!$' "'!$'""
echo '!$' !$

Команда echo "echo '! $'" '! $' "" , аргументы, переданные в echo , разделены на три части:

  • Сначала: "echo '! $'" , расширяется до строки echo '! $' .
  • Второй: '! $' , расширяется до строки ! $ .
  • Третий: "" , раскрывается в пустую строку.
8
27.01.2020, 20:17

echo просто итературирует свои аргументы и посылает их в стандартном варианте.

Вся магия выполняется оболочкой: Оболочка подменяет некоторые паттерны другими, такими как переменные ( начиная с $ ), история (начиная с ! ) и т.п.

Смотрите руководство bash для более детального изучения.

2
27.01.2020, 20:17

Теги

Похожие вопросы