Метасимволи UNIX

Оболонка розпізнає і ряд інших символів як спеціальні найчастіше зустрічається зірочка *, що повідомляє оболонці, що слід переглянути каталог в пошуку файлів з іменами, в яких на місці * варто будь-яка символьний рядок Наприклад,

$ echo *

це жалюгідна подоба ls У главі 1 не згадувалася, що при перевірці імен файлів на збіг не розглядаються імена, що починаються з точки, щоб уникнути проблем з іменами «» І «.», які є в кожному каталозі Правило виглядає наступним чином: при пошуку імен файлів, відповідних шаблоном, імена, що починаються з точки, вважаються придатними, тільки якщо в шаблоні точка присутній явним чином Як звичайно, прояснити ситуацію допоможе «розсудлива» команда echo або навіть декілька таких команд:

$ ls

.profile  junk

temp

$ echo *

junk  temp

$ echo *

. . profile

$

Такі символи, як *, що мають спеціальні властивості, називаються метасимвол Їх дуже багато Повний список метасимволов представлений в табл 31 (але про деякі з них буде розказано тільки в розділі 5)

Тепер, коли відомо про існування значної кількості метасимволов, треба знайти якийсь спосіб сказати оболонці: «Залиш цей символ у спокої» Найпростіший і хороший спосіб захистити спеціальні символи від інтерпретації оболонкою полягає в тому, щоб укласти їх в одинарні лапки:

$ echo ***

***

$

Можна використовувати і подвійні лапки …”, але оболонка зазвичай заглядає всередину таких лапок в пошуку символів $, `..` і \, так що уникайте їх, якщо обробка рядка усередині лапок небажана

Третій спосіб полягає в тому, щоб ввести зворотню косу риску \ перед кожним символом, який потрібно захистити від обробки оболонкою, наприклад

$ echo \*\*\*

Незважаючи на те що \ * \ * \ * не дуже-то нагадує англійське слово, в термінах оболонки це слово(Будь-яка окрема рядок, яку оболонка сприймає як єдине ціле, включаючи пробіли, якщо вони укладені в лапки)

Лапки одного типу захищають лапки іншого типу:

$ echo &quotDont  do that&quot

Dont  do that

$

і не обовязково брати в лапки весь аргумент:

$ echo x*y

x*y

$ echo *A?’

*A

$

Таблиця 31 Метасимволи оболонки

Метасимвол Пояснення

&gt                       prog&gtfile направляє стандартний висновок у файл

&gt&gt                     prog&gt&gtfile додає стандартний висновок в кінець файлу

&lt                       prog&ltfile бере стандартний ввід з файлу

|          p1|p2 направляє стандартний висновок p1 на стандартний ввід p2

&lt&ltstr вбудований документ(here  document) – Стандартний потік введення починається в рядку безпосередньо після символу, при знак закінчення – str

* Відповідає будь-якому рядку з нуля і більше символів, що входить в імя файлу

? відповідає будь-якому окремому символу в імені файлу

[ccc] Відповідає будь окремому символу з ccc в імені фай ла, дозволено використання діапазонів, наприклад 0-9 або a-z

; покажчик кінця команди, p1p2 виконує p1, потім p2

& аналогічно, але без очікування завершення p1

`..` Виконує команду (команди) в ..; висновок яких замінює

`..`

Метасимвол

Пояснення

(..)

{..}

,

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*