Почему я должен дважды уйти от «точки»?

Я знаю, что мы можем избежать специального символа, такого как *(){}$ с \ чтобы считаться литералами.
Например, \* или \$

Но в случае . Я должен сделать это дважды, как \\. в противном случае он считается особым. Пример:

 man gcc | grep \\. 

Почему это так?

One Solution collect form web for “Почему я должен дважды уйти от «точки»?”

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

Давайте рассмотрим ваш пример:

 man gcc | grep \\. 

Эта команда интерпретируется двумя программами, интерпретатором bash и grep . Первый побег приводит к тому, что bash знает \ буквально, поэтому второй – это пропуск для grep .

Если вы уйдете только один раз, \. , bash будет знать, что эта точка буквальна и проходит . к grep . Когда grep увидит это . , он считает, что точка – это особый характер, а не буквальный .

Если вы дважды bash , bash передаст шаблон \. к grep . Теперь grep знает, что это буквальная точка.

  • как сохранить вывод команды в массив с каждым значением в двойной кавычки
  • 'while read line do' cause: "синтаксическая ошибка около неожиданного токена` done '"в скрипте Linux bash
  • Использование команды eval дважды
  • Базовое имя дает дополнительную ошибку операнда
  • Сортировка каталогов и файлов в каждом каталоге в порядке возрастания и экспорт данных в csv
  • Запустить сценарий ожидания из другой оболочки
  • Как избежать столкновения / загрязнения пространства имен в сценарии, предназначенном для поиска?
  • Сохранять все даты в определенном диапазоне дат в переменной
  • Автоматически вводить пароль SSH без использования SSH-ключа, «ожидать», «sshpass» или Python
  • Потрясающее поведение округления с печатью
  • Удалить строку с помощью> и forward-slash из xml-кода
  • Interesting Posts

    Отброшены пакеты в управлении трафиком, которые действительно упали?

    Как удалить строки из текстового файла, который имеет определенное значение в столбце через входной файл?

    zathura: Как добавить keybind для exec?

    Автозагрузка Debian VirtualBox завершилась неудачно при запуске, но работает после входа в систему: установка завершилась с ошибкой: нет такого устройства

    Цветность

    Проблема Ecryptfs с rsync

    Создание межтерминальных приложений для Linux-систем

    не удается найти окна после клонирования до hd с помощью команды dd

    Linux-дистрибутив, поддерживающий сенсорные панели и acpi на Macbook Pros

    openssl не загружает двигатель из файла конфигурации

    API ядра файловой системы

    Ubuntu 11.10 с оболочкой gnome – приостановить звук пробуждения

    Как определить успех программы при выполнении последовательности подобных задач?

    Переключитесь на приложение, используя его PID

    Проблема с Fedora 20: открытие шлюза через терминал как не root

    Linux и Unix - лучшая ОС в мире.