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

Вот что я вложил в bash и результаты, которые я получил о «echo»:

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

Я хотел бы знать, как «эхо» относится ко второму входу. Мне кажется, что «эхо» сначала напечатает строки (добавьте некоторые, если необходимо), которые вы ввели, а затем выполните определенные, если они исполняются.

Более умопомрачительный пример, который я могу построить, но не могу понять:

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

2 Solutions collect form web for “эхо строки с восклицательным знаком”

В команде:

 echo "!$" 

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

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

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

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

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

  • Сначала: "echo '!$' " , Расширенное до строки echo '!$' .
  • Второй: '!$' , Расширенный до строки !$ .
  • Третье: "" , расширенное до пустой строки.

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

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

Подробнее см. Руководство по bash .

  • Считать файлы в каталоге по расширению
  • Проблема с экранированием параметризованных аргументов
  • Выход из функции bash, а не терминала
  • Как удалить слово, следующее из последней косой черты
  • bash - как преобразовать несколько строк в одну строку для sh -c
  • Как вставить кавычки в командах bash
  • Передача аргументов командной строки bash, содержащих #
  • Как совместить * со скрытыми файлами внутри каталога
  • Как правильно это перечислить с помощью инструментов Unix для pdfjam?
  • Различное поведение $ () и ``
  • Функция stateful bash
  • Новая строка в переменных bash
  • Linux и Unix - лучшая ОС в мире.