Почему обратная косая черта предотвратить расширение псевдонима?

В первой части моего вопроса я предоставлю некоторую справочную информацию в виде служение обществу. Вторая часть содержит собственно вопрос.

Часть I

Предположим, я создал следующий псевдоним:

alias ls='ls -r'

Я знаю, как временно удалить псевдоним (т.е. переопределить этот псевдоним) в следующем способами, используя:

1) полный путь к команде: / bin / ls

2) подстановку команды: $ (which ls)

3) встроенная команда: command ls

4) двойные кавычки: "ls"

5) одинарные кавычки: 'ls'

6) обратный слеш: \ ls

Случай 1 очевиден, а случай 2 - просто вариация. Команда, встроенная в case 3, была разработана для игнорирования функций оболочки, но, очевидно, она также работает для обхода псевдонимов. Наконец, случаи 4 и 5 совместимы со стандартом POSIX (2.3.1) :

"результирующее слово, которое идентифицируется быть словом имени команды простая команда должна быть проверена на определить, не цитируется ли он, допустимое имя псевдонима. "

и Справочное руководство Bash (6.6) :

" Первое слово каждого простого команда, если она не заключена в кавычки, проверяется на посмотрите, есть ли у него псевдоним ».

Часть II

Вот вопрос: почему случай 6 (переопределение псевдонима, сказав \ ls ) считается цитировать слово? В соответствии со стилем этого вопроса, я ищу ссылки на "официальную" документацию.

В документации говорится, что обратная косая черта экранирует только следующее символ , в отличие от одинарных и двойных кавычек, которые заключают последовательность символов. Стандарт POSIX (2.2.1) :

«Обратная косая черта без кавычек должна сохранить буквальное значение следующий персонаж, с исключение "

Справочное руководство по Bash (3.1.2.1) :

" Обратная косая черта '\' без кавычек - это Экранированный символ Bash. Он сохраняет буквальное значение следующего следующий за ним персонаж с исключение новой строки. »

(Кстати, не является ли« следующий за ним символ »лишним?)

Возможный ответ может заключаться в том, что эта ситуация не такая уж особенная: это аналогично нескольким случаям при цитировании ANSI-C, например \ nnn . Однако это все еще экранирование одиночного символа (восьмибитовый символ, значение которого является восьмеричным значение nnn), а не последовательность символов.

23
задан Ciro Santilli 新疆改造中心法轮功六四事件 7 August 2016 в 08:39
поделиться