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)

相关文章

/etc/sysctl.conf这个目录主要是配置一些系统信息,/etc/sys...
1.作用 useradd或adduser命令用来建立用户帐号和创建用户的起...
它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅...
不管是我们在安装软件还是监测软件的使用性能,我们都要随时...
装好Tomcat7后,发现除了本机能访问外界访问不了,岂有此理。...
修改防火墙配置需要修改 /etc/sysconfig/iptables 这个文件,...