首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么bash命令行参数在9之后需要花括号?

为什么bash命令行参数在9之后需要花括号?
EN

Stack Overflow用户
提问于 2013-08-19 16:31:12
回答 1查看 7.6K关注 0票数 12

这也许不是最发人深省的问题,但却引起了我的好奇心。我还没有在网上找到任何答案(更别提确切的答案了)。

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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-19 17:42:12

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

为什么会这样?我没有头绪。我猜想,遗留实现已经被扩展了。“谁还会需要更多的.”

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18318716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档