Я прочитал тонну страниц, включая руководство bash, но все еще нахожу «неочевидным» использование обратных косых черт.
Если я это сделаю:
echo \*
он печатает одну звездочку, это нормально, поскольку я избегаю звездочек, делая его буквальным.
Если я делаю:
echo \\*
, то печатается \*
Это также кажется нормальным, первое backsla sh ускользает от второго.
Если я это сделаю
echo `echo \\*`
Он печатает содержимое каталога. Но, на мой взгляд, он должен печатать так же, как echo \\*
, потому что когда это подставляется и передается в эхо. Я понимаю, что это неочевидное использование обратной косой черты, о которой все говорят, но я изо всех сил пытаюсь понять ПОЧЕМУ это происходит.
Также в руководстве bash написано
Когда используется форма замещения в старом стиле, backsla sh сохраняет свое буквальное значение, за исключением случаев, когда за ним следует '$', '`' или '\'.
Но это не определяет, что такое" буквальное значение на backsla sh ". Является ли он символом выхода, продолжением или просто буквально символом sh?
Кроме того, в нем говорится, что он сохраняет свое буквальное значение, за исключением случаев, когда за ним следует ... Итак, когда за ним следует один из этих трех символов, что он делает? Это только избежать тех трех персонажей?