15.5. Обратная косая черта

15.5. Обратная косая черта

Символ обратной косой черты указывает интерпретатору shell, что следующий за ним символ не имеет специального значения. Специальное значение могут иметь такие символы: & *=^ $ ` " | ?.

В результате применения команды echo вместе с символом * на экран выводится не символ звездочки, а листинг. В этот листинг включается текущий каталог.

$ echo *

conf.linuxconf conf.modules cron.daily cron.hourly cron.monthly cron.weekly crontab csh.cshrc default dosemu.conf dosemu.users exports fdprm fstab gettydefs gpm?root.c onf group group- host.conf hosts hosts.allow hosts.deny httpd inetd

Для отмены специального значения звездочки, примените символ обратной косой черты:

$ echo *

*

Аналогичный результат можно получить с помощью команды $$. Интерпретатор shell воспринимает ее как текущий PID (ID процесса). Чтобы отключить специальное значение и вывести на экран символ $$, нужно перед этим символом поместить символ обратной косой черты:

$ echo $$

284

$ echo $$

$$

Для вывода на экран символов, заданных восьмеричными ASCII–кодами, перед ними следует размещать символ обратной косой черты. В противном случае интерпретатор shell воспримет их как обычные числа.

$ echo "This ls a copyright 251 sign"

This is a copyright 251 sign"

$ echo "This is a copyright 251 sign"

This ls a copyright © sign"

В Linux…

He забывайте при выводе управляющих символов указывать параметр " -e".

$ echo -e "This ls a copyright 251 sign"

This ls a copyright © sign

Если при использовании команды expr применить символ * для обозначения операции умножения, то отобразится сообщение об ошибке. Чтобы символ * обозначал операцию умножения, следует поместить перед ним символ обратной косой черты.

$ expr 12 * 12

expr; syntax error

$ expr 12 * 12

144

Чтобы оператор echo включал метасимволы, воспользуйтесь символом обратной косой черты. В следующем примере отображается цена $19.99. Поскольку не применяется символ обратной косой черты, интерпретатор shell трактует эту цену иначе.

$ echo * "That video looks a good price for $19.99"

That video looks a good price for 9.99

Если же перед знаком доллара поставить знак обратной косой черты, то получим искомый результат.

$ echo "That video looks a good price for $19.99"

That video looks a good price for $19.99