【问题标题】:Are there any rules for unix/linux shell variable naming?unix/linux shell 变量命名有什么规则吗?
【发布时间】:2013-02-27 09:09:27
【问题描述】:

unix/linux shell 变量命名有什么规则吗?

例如,像 Java 变量命名的通用规则。

【问题讨论】:

标签: linux shell variables unix syntax


【解决方案1】:

您必须非常小心,不要将任何 UNIX 命令用作变量。它会弄乱代码并产生意想不到的结果。另外,请记住保留字(ifelseelifdodone...),并且大写变量保留供系统使用。

来自Rules for Naming variable name

变量名必须以字母数字字​​母字符或下划线开头 字符 (_),后跟一个或多个字母数字或下划线 人物。有效的 shell 变量示例

或如The Open Group Base Specifications Issue 7

在 shell 命令语言中,一个词仅由 可移植字符集中的下划线、数字和字母。 名称的第一个字符不是数字。

【讨论】:

  • 感谢您的回复,我了解shell对变量命名有强制性要求,我想知道我们对变量命名有什么建议,例如:VAR_NAME或varName或var_name,哪个是最好用?
  • Shell 期望变量以$ 开头,因此有一个名为$ls$done 的变量(尽管使用ls=1done=1 初始化)似乎不会导致问题- 即使它看起来令人困惑。你能举一个它不起作用的例子吗?
  • 不,你可以按你喜欢的方式写。我能给你的唯一建议是坚持你的决定,以相同的方式编写所有变量:如果你选择 var_name,请始终使用 var_name,不要创建任何 VarName 或 varName。这将有助于阅读代码。但这是一个审美决定,shell不会抱怨。
  • @BinaryZebra 非常好。感谢您的更正和链接。更新了!
  • 这缺少来自stackoverflow.com/questions/673055/…的重要细节
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多