大括号扩展中大括号之间的解释

时间:2020-05-03 08:57:31

标签: bash command-substitution brace-expansion

在Bash入门指南中

括号扩展在执行任何其他扩展之前执行,并且其他扩展专用的任何字符 保存在结果中。严格来说是文字。 Bash不会对...的上下文应用任何语法解释 括号之间的扩展或文本。为避免与参数扩展冲突,字符串“ $ {”为 不符合大括号扩展的条件。

在本段中,它表示Bash不会对扩展的上下文或大括号之间的文本应用任何语法解释,而是在我执行此命令时

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 Beginners Guide Screenshot of the space paragraph

1 个答案:

答案 0 :(得分:1)

您的示例中的大括号扩展未返回hLinux。它返回了help h`uname`

仅在第二步中,Bash将命令替换应用到`uname`,这使整个命令成为help hLinux

括号扩展不会不会随后停止将其他机制应用于结果。它只是不能自行解析任何内容。