Почему \ n расширяется до n в bash?

Когда дело доходит до операции оболочки , я могу понять первый шаг, но второй шаг немного озадачивает меня. Вот мое понимание:

Во-первых, оболочка разбивается на слова и операторы, а затем выполняет согласно правилам кавычек. Вот некоторые из моих вопросов. Когда я выполняю:

$ \n bash: n: command not found 

Почему команда n: command not found ? not \n: command not found ?

 $ $'\n' bash: $'\n': command not found 

Почему он не выполняет цитирование ANSI-C?

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

One Solution collect form web for “Почему \ n расширяется до n в bash?”

Обратная косая черта цитирует следующий символ (см. QUOTING в man bash ). \n поэтому интерпретируется как n (и, будучи первым словом команды, это предотвратит расширение псевдонима, см. ALIASES в man bash ).

$'\n' интерпретируется как цитируемый ANSI-C. Баш просто использует ту же цитату, чтобы показать проблематичный характер. Вы можете получить ту же ошибку из

 ' ' 

что эквивалентно ему.

Процесс расщепления слов описывается в начале man bash . Если вы сомневаетесь, задайте более конкретный вопрос или проверьте исходный код .

  • Проблема с экранированием параметризованных аргументов
  • Как выполнить эхо-команду и включить возврат строки?
  • Новая строка в переменных bash
  • Есть ли способ получить * фактические * (неинтерпретированные) аргументы оболочки в функции или скрипте?
  • Escaping * с регулярными выражениями и Grep
  • Почему -text = "$ @" пропускает только первое слово?
  • Как анализировать переменную env в цитируемой строке?
  • Проблема использования пользовательской переменной в скрипте
  • while: команда не найдена
  • 7z получение события не найдена ошибка в командной строке
  • Как процитировать строку, содержащую знак доллара $ и одинарную цитату '?
  • Interesting Posts
    Linux и Unix - лучшая ОС в мире.