linux – Bash中有效标识符(例如函数,vars等)的规则是什么?

Bash中的标识符,特别是函数和变量名称的语法规则是什么?

我写了一个Bash脚本,并在Ubuntu,Debian,Red Hat 5和6上的各种版本的Bash上进行了测试,甚至是一个旧的Solaris 8框.脚本运行良好,因此它运行.

然而,当用户在SUSE机器上尝试使用它时,它给出了“不是有效的标识符”错误.幸运的是,我猜这个函数名中有一个无效的字符是对的.连字符弄乱了它.

至少有一些测试的脚本在另一个Bash或发行版上会有完全不同的行为,这是令人不安的.我该如何避免这种情况?

解决方法

Shell Function Definitions
       ...
       name () compound-command [redirection]
       function name [()] compound-command [redirection]

名称在别处定义:

name   A  word  consisting  only  of alphanumeric characters and under‐
              scores,and beginning with an alphabetic character or an  under‐
              score.  Also referred to as an identifier.

所以连字符无效.然而,在我的系统上,他们做的工作…

$bash --version
GNU bash,version 4.2.25(1)-release (x86_64-pc-linux-gnu)

相关文章

文章浏览阅读1.8k次,点赞63次,收藏54次。Linux下的目录权限...
文章浏览阅读1.6k次,点赞44次,收藏38次。关于Qt的安装、Wi...
本文介绍了使用shell脚本编写一个 Hello
文章浏览阅读1.5k次,点赞37次,收藏43次。【Linux】初识Lin...
文章浏览阅读3k次,点赞34次,收藏156次。Linux超详细笔记,...
文章浏览阅读6.8k次,点赞109次,收藏114次。【Linux】 Open...