<Предыдущая | Содержание: | Следующая>
расширение
Каждый раз, когда мы набираем команду и нажимаем клавишу ввода, колотить выполняет несколько операций с текстом перед выполнением нашей команды. Мы видели несколько случаев, когда простая последовательность символов, например «*», может иметь большое значение для оболочки. Процесс, благодаря которому это происходит, называется расширение. С расширением мы входим во что-то, и оно расширяется во что-то еще до того, как оболочка воздействует на это. Чтобы продемонстрировать, что мы имеем в виду, давайте взглянем на эхо команда. эхо - это встроенная оболочка, которая выполняет очень простую задачу. Он выводит свои текстовые аргументы на стандартный вывод:
[я @ linuxbox ~] $ эхо это тест
Это тест
[я @ linuxbox ~] $ эхо это тест
Это тест
Это довольно просто. Любой аргумент, переданный в эхо отображается. Давайте попробуем другой пример:
[я @ linuxbox ~] $ эхо *
Документы рабочего стола ls-output.txt Музыкальные картинки Общедоступные шаблоны Видео
[я @ linuxbox ~] $ эхо *
Документы рабочего стола ls-output.txt Музыкальные картинки Общедоступные шаблоны Видео
Так что же только что произошло? Почему не эхо Распечатать "*"? Как мы помним из нашей работы с подстановочными знаками, символ «*» означает соответствие любым символам в имени файла, но в нашем первоначальном обсуждении мы не видели, как оболочка это делает. Простой ответ заключается в том, что оболочка заменяет «*» на что-то еще (в данном случае имена файлов в текущем рабочем каталоге) перед эхо команда выполняется. Когда клавиша ввода
нажата, оболочка автоматически расширяет все квалификационные символы в командной строке перед выполнением команды, поэтому эхо команда никогда не видела «*», только ее расширенный результат. Зная это, мы видим, что эхо вел себя как положено.