gpt4 book ai didi

bash - 为什么 9 之后的 bash 命令行参数需要大括号?

转载 作者:行者123 更新时间:2023-11-29 08:51:48 24 4
gpt4 key购买 nike

这可能不是最发人深省的问题,但仍然引起了我的好奇。我无法在网上找到任何答案(更不用说确定的答案了)。

在阅读 Advanced Shell Scripting 时,我遇到了 this section关于命令行位置参数,它指出第九个参数之后的任何内容都必须用 ${} (变量引用/替换的较长形式)包围。

简单地说,为什么必须将命令行参数 10(及以后)引用为 ${10}, ${11}... 而不是 $10, $11, ... ?

最佳答案

具体来说,您的问题与“位置参数”有关。使用 $var 而不是 ${var} 是 bash 中的简写。在大多数情况下,它运作良好。 Bash 变量必须以字母或下划线开头。它在内部将以数字开头的变量视为“位置参数”。当 bash 检测到位置参数时,它只查看第一个数字,这就是 $10 返回 $1"0"的原因。通过调用 ${10},您指示 bash 查看完整的变量,而不是其内置默认值的第一个数字。

至于为什么会这样?我不知道。已经扩展的遗留实现是我的猜测。 “谁会需要更多……?”

关于bash - 为什么 9 之后的 bash 命令行参数需要大括号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18318716/

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