这也许不是最发人深省的问题,但却引起了我的好奇心。我还没有在网上找到任何答案(更别提确切的答案了)。
在阅读Advanced脚本时,我遇到了关于命令行位置参数的this section,它指出第九个参数之后的任何内容都必须被${} (变量引用/替换的更长形式)包围。
简单地说,为什么必须将命令行参数10(及以后)引用为${10}, ${11}...而不是$10, $11, ...
发布于 2013-08-19 17:42:12
具体来说,你的问题与“位置参数”有关。使用$var代替${var}是bash中的缩写。在大多数情况下,它工作得很好。Bash变量必须以字母或下划线开头。它在内部将以数字开头的变量视为“位置参数”。当bash检测到位置参数时,它只查看第一个数字,这就是$10返回$1"0“的原因。通过调用${10},您将指示bash查看完整变量,而不是其内置的第一个数字默认值。
为什么会这样?我没有头绪。我猜想,遗留实现已经被扩展了。“谁还会需要更多的.”
https://stackoverflow.com/questions/18318716
复制相似问题