什么是 bash 包?

Ron*_*ohn 10 shell bash shell-script

谷歌的bash风格指南中提到的bash包,其中包的名字应该从函数名用双冒号分隔

如果您正在编写单个函数,请使用小写字母并使用下划线分隔单词。如果您正在编写包,请使用 :: 分隔包名。大括号必须与函数名称在同一行(与 Google 的其他语言一样)并且函数名称和括号之间没有空格。

# Single function
my_func() {
  ...
}

# Part of a package
mypackage::my_func() {
  ...
}
Run Code Online (Sandbox Code Playgroud)

我用 google 搜索过,但没有发现除了Lightweight bash Package Manager之外没有对 bash 包的引用。他们指的是这个吗?

iga*_*gal 6

我认为 Bash 没有像“真正的”编程语言那样对包提供任何内置支持。它可能只是为了代码组织的目的而用于模拟命名空间的命名约定。请参阅以下帖子以进行进一步讨论:

我想它的灵感来自于Perl 模块使用的语法。

  • 就好像您将一堆函数放入“mylib.sh”中,所有函数都以“mylib::”为前缀,然后在“最终用户”脚本的顶部获取该文件。IOW,本地命名空间? (2认同)