gpt4 book ai didi

bash - 参数扩展的行为

转载 作者:行者123 更新时间:2023-11-29 09:22:40 30 4
gpt4 key购买 nike

我一直认为通过参数扩展如$foo,shell在执行命令之前用参数的内容替换$foo。例如,如果我设置

foo='`'

那么,为什么

ls $foo

行为不同于

ls `

?

最佳答案

bash 在处理命令行时有几个不同的阶段。这里相关的是解析阶段和扩展阶段。阶段按顺序发生,一个阶段直到前一个阶段完成才开始。

在第一个示例中,解析器 永远不会看到反引号;这是由解析完成后发生的 $foo 的扩展提供的。结果,文字反引号作为参数传递给 ls

在第二个示例中,解析器看到一个未加引号的反引号,它表示命令替换的开始。

关于bash - 参数扩展的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49908701/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com