Что делает эхо?

Что делает эхо?

Недавно я заметил, что эхо, в которое я включаю много "!", приводит к странным вещам. Например: echo !!дает мне:

echo rm -r * 1000
rm -r * 1000

( rm -r *была последняя команда, которую я выполнил перед тем, как набрать ее). Почему это происходит, и есть ли способ отключить это?

решение1

Вы столкнулись с shell expansion- оболочка проанализирует вашу команду и заменит специальные подстановочные знаки другой информацией. Попробуйте echo '!!'(одинарные кавычки), чтобы понять, что могут сделать расширение оболочки и кавычки.

Подробнее о расширении оболочки можно прочитать на manстранице bash. Обратите внимание на разделы дляистория расширение, в котором обсуждаются event designatorsтакие темы, как !!, ирасширение, в котором обсуждаются другие формы расширения оболочки. Раздел оцитированиеобъясняет поведение механизмов кавычек bash и разницу между тем, как оцениваются строки в одинарных и двойных кавычках.

Связанный контент