Шаблоны подстановки и перечисление

Оболочки специальным образом интерпретируют некоторые метасимволы, например, *, подставляя вместо них имена файлов. Такие метасимволы назы- ваются шаблонами подстановки. Символы подстановки позволяют оболочке произвести поиск файлов, имена которых удовлетворяют шаблону, и подста- вить их в командную строку.

В качестве команды для испытания шаблонов подстановки можно использо- вать команду echo, которая просто выводит на экран то, что ей задано в каче- стве аргумента.

Символ "звездочка" (*) является шаблоном для любого количества любых символов в именах файлов и даже для их отсутствия. Единственный символ, который не удовлетворяет этому шаблону, — лидирующая точка в именах скрытых файлов. Таким образом, подставив звездочку в качестве аргумента команде echo, мы либо увидим в результате саму звездочку, если в каталоге нет файлов, либо оболочка подставит команде echo имена всех файлов в ка- талоге в командную строку (пример 2.35).

 

Пример 2.35. Шаблон *

 

$ cd /etc/xinetd.d

$ echo *

amanda amandaidx amidxtape chargen chargen-udp cvs daytime daytime-udp echo echo-udp eklogin ekrb5-telnet gssftp klogin krb5-telnet kshell ktalk rsync telnet tftp time time-udp uucp

 

В примере 2.35 производится переход в каталог /etc/xinetd.d, в котором есть несколько файлов, имена которых подставляются оболочкой в виде аргумен- тов команде echo, т. к. они удовлетворяют шаблону *.

Имеются особенные имена файлов, начинающиеся с точки, например,

.bashrc. Такие файлы называются скрытыми, т. к. их имена не выводятся ко- мандой ls без специальных опций. Шаблоном для имен скрытых файлов яв- ляется .* (точка и звездочка). Вообще, любые шаблоны для скрытых файлов должны начинаться с символа "точка".

Символ ? заменяет один символ в имени файла, который должен находиться в той позиции, где находится знак вопроса (пример 2.36).


 

Пример 2.36. Шаблон ?

 

$ echo .??????

.bashrc .config .emacs~ .gconfd .gnome2 .isotmp .mcoprc .themes

 

В примере 2.36 получен список скрытых файлов (имена начинаются с точки), в именах которых после точки имеется шесть любых символов.

Можно еще более сузить диапазон поиска, используя набор символов, за- ключенных в квадратные скобки. Применение такого шаблона обозначает, что в данном месте должен находиться один любой символ из заданного множества. Для того чтобы указать допустимый диапазон символов в шабло- не, необходимо использовать квадратные скобки, а в них — требуемый диа- пазон. Например, [0-9] — шаблон подходит для любых цифр, а [a-zA-Z] — шаблон для букв английского.

 

Пример 2.37. Шаблон множества

 

$ echo .[bcd]*

.bash_history .bash_logout .bash_profile .bashrc .cshrc .ddd

 

Пример 2.37 демонстрирует вывод имен скрытых файлов, в именах которых после точки стоит символ b, c или d.

Если необходимо указать набор символов, не входящих во множество, следу- ет установить знак восклицания после открывающей скобки. Например, [!abc] — множество любых символов, кроме a, b или c.

Очень удобен, хотя и не относится к шаблонам, механизм перечисления Bash. Он позволяет задать множество вариантов, которое должна перебрать обо- лочка, составляя последовательно все варианты, заданные в фигурных скоб- ках (пример 2.38).

 

Пример 2.38. Перечисление

 

$ echo .bash{rc,_profile}

.bashrc .bash_profile

 

В примере 2.38 использован механизм перечисления для обращения к двум файлам: .bashrc и .bash_profile. Имена этих файлов имеют общую подстроку

.bash, коротая вынесена за фигурные скобки. В фигурных скобках через за- пятую перечислены варианты продолжения: rc и _profile.


 








Дата добавления: 2015-06-12; просмотров: 906;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.006 сек.