3. Шаблоны подстановки в командном процессоре

Вы, вероятно, уже использовали символы подстановка, не зная, что это такое. Если вы указываете файл в Windows® или выполняете поиск файла, вы используете * для установки соответствия случайной строке. Например, *.txt соответствует всем файлам с именами, заканчивающимися на .txt. Мы также часто использовали это в последнем разделе. Но кроме * существует еще много других подстановок.

Когда вы вводите команду типа ls *.txt и нажимаете на Enter, задача по нахождению файлов, соответствующих шаблону *.txt, выполняется не командой ls, а самим shell'ом. Требуется некоторое пояснение того, как командная строка интерпретируется shell'ом. Когда вы вводите:

$ ls *.txt
readme.txt  recipes.txt

командная строка разбивается сначала на слова (ls и *.txt в этом примере). Когда командный процессор видит в слове *, он будет интерпретировать все слово как шаблон универсализации и будет заменять его именами всех соответствующих файлов. Поэтому команда, перед тем как командный процессор ее исполнит, принимает вид ls readme.txt recipe.txt, что и дает ожидаемый результат. Другие символы также заставляют командный процессор реагировать подобным образом:

Далее представлено несколько шаблонов и их значения:



[37] Будьте осторожны! Хотя это справедливо для большинства языков, это может быть не так в вашей собственной настройке языка (локали). Это зависит от порядка сортировки. В некоторых языковых настройках [a-z] будет соответствовать a, A, b, B, (...), z. Не говоря уже о том, что некоторые языки имеют подчеркнутые символы...