我正在一个名为library.sh的.sh文件中编写一组函数。
我希望在库中定义每个函数来创建一个伪名称空间,如下所示:
library::functionA ()
{
...
}
library::functionB()
{
...
}
然后在主脚本中调用库函数,如下所示:
. lib/library.sh
...
library::functionA
当我运行主脚本时,会收到一条错误消息:
library::functionA command not found
在重新运行项目中有一个示例:
https://github.com/rerun/rerun/blob/master/etc/bash_completion.sh
(请参见list:member)但该方法在本地调用,并且只有一个冒号。
谷歌的shell风格链接中也提到了这个想法:https://google-styleguide.googlecode.com/svn/trunk/shell.xml
在函数名下..用::分隔库。括号是
函数名后必须输入。
我想要[module name]::[function name]。
我错过了什么?
谢谢你的帮助,
最佳答案
我才意识到。谢谢你,里奇。我通过删除paranteses并向library.sh中要导出的方法添加一个特定的指令类型集-fx library::test来实现这一点。再加上一个。但是,难道没有更好的方法从脚本导出所有函数吗?仅供参考,排版似乎已经过时了。
我的问题的答案是:在图书馆顶上输入f。太好了,这很酷!谢谢!已导出所有函数。
如果现在在库中调用本地方法,则需要添加“library::”。是否有bash内置指令来说明函数是否是本地的,省略标签“library::”?
关于linux - 如何使用以下命名约定导入Bash函数:“[模块]::[函数名称]”?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28902264/