正在编写bash
函数。看起来函数名称可以包含连字符:-
。
因此indus-headrc ()
和indus-tailrc ()
。曾以为只允许使用下划线。
答案1
关于 Bash 的一个常见误解是函数名称必须遵循与变量相同的规则。 Bash 手册甚至建议这样做:
仅由字母、数字和下划线组成且以字母或下划线开头的单词。名称用作 shell 变量和函数名称。也称为标识符。
事实上,Bash 函数名称几乎可以是任何可打印字符。例如,我可以定义自己的预自增一元函数:
function ++ { (( $1++ )); }
当然,任何理智的人还是会遵循他的建议。标准函数命名。
尝试编写 POSIX-ly ( #!/bin/sh
),它不会接受连字符并出错:
语法错误:函数名错误
结论
所以,如果你问我:
是否可以包含非标准字符:可以。
那我应该用它吗?绝对不行!你会损害可移植性,因此你不应该使用任何非标准的命名。遵守 POSIX,这是养成良好习惯的好方法。