当您查看您选择的Linux附带的bash函数时,您经常会看到private
(在推荐意义上是私有的)函数是这样编写的:
__private_func() {
:
}
所以,你首先想知道为什么不只是一个下划线(_
)私有函数...然后你看到bash完成函数通常以一个下划线开始,通常用双下划线调用私有函数,如之前的例子:
_complete_func() {
__private_func
}
我想知道的是:这是什么原因?是否有一些关于如何为私有函数添加前缀的约定?
答案 0 :(得分:10)
我查看了bash手册页和POSIX shell standard,但无法找到有关此命名约定的任何内容。也就是说,使用下划线表示C中的保留名称或内部名称。引用libc manual on reserved names:
除了本手册中记录的名称外,还有保留名称 包括所有外部标识符(全局函数和变量) 以下划线('_')和所有标识符开头,不管用途如何 以两个下划线或下划线后跟一个开头 大写字母是保留名称
此命名约定的主要逻辑是:
这样库和头文件可以定义函数,变量, 用于内部目的的宏和宏,没有与名称冲突的风险 在用户程序中
它还有一个好处,就是能够轻松地在“私有”和“公共”功能之间进行grep(我将其置于引号中,因为用户可以调用任何一种形式而不管命名)。