Интерпретация между фигурными скобками в расширении фигурных скобок - PullRequest
0 голосов
/ 03 мая 2020

In Bash Руководство для начинающих

Расширение фигурной скобки выполняется перед любыми другими расширениями, и любые символы, специальные для других расширений, сохраняются в результате. Это строго текстуально. Bash не применяет какую-либо интерпретацию syntacti c к контексту расширения или тексту в скобках. Чтобы избежать конфликтов с расширением параметра, строка «$ {» не считается пригодной для расширения фигурной скобки.

В этом параграфе говорится, что Bash не применяет интерпретацию syntacti c к контекст расширения или текст между фигурными скобками, но когда я выполнил эту команду

h{elp,`uname`}

Она вернула

bash: help: no help topics match `hLinux'.  Try `help help' or `man -k hLinux' or `info hLinux'.

Она возвращает слово hLinux вместо h`uname `. Таким образом, слово «uname» интерпретируется даже в том случае, если оно заключено в фигурные скобки, почему?

Bash Руководство для начинающих Снимок экрана с абзацем

1 Ответ

1 голос
/ 03 мая 2020

Расширение скобки в вашем примере не вернуло hLinux. Он вернул help h`uname`.

Только на втором шаге Bash применил подстановку команды к `uname`, что сделало всю команду help hLinux.

Расширение скобки делает не остановить другие механизмы, которые будут применены к результату впоследствии. Он просто ничего не анализирует сам по себе.

...