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