Интерпретация звездочки оболочкой [дубликат]

Я знаю, что * должен интерпретироваться оболочкой, а не вызываемой командой

Теперь, если я выполню следующую команду в моем домашнем каталоге

$echo *

, я получу

Desktop Documents Pictures Downloads  ...etc

Но если Я выполнил команду в пустом каталоге и получил

*

в качестве вывода

Почему это так? почему echo print * , а * не экранируется и интерпретируется только оболочкой

Разве вывод не должен быть пустой строкой?

1
задан 1 May 2018 в 18:37

1 ответ

Следующий ответ дает возможное объяснение.

Я заключу в кавычки из него:

обратите внимание, что, если расширение ни к чему не приводит, т.е. в этом случае если каталог не содержит нескрытых файлов, *, оставлен без изменений и передан, как к названной команде.

Таким образом, это разворачивает подстановочный символ *, но когда это ничему не соответствует, это сохраняется, как и передал названной команде, 'отзовитесь эхом' в этом случае.

2
ответ дан 7 December 2019 в 13:24

Другие вопросы по тегам:

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