if __name__ == '__main__'
是什么?我没有在Stackoverflow上找到关于这个主题的现成问题/解决方案(我怀疑我提出的方式不符合现有问题/答案的要求,但这是我根据我的Python经验所能想到的最明显的方式来表达问题)。
p.s. 关于可能是重复问题(如果我有更多时间,我会写一个更简短的回答):
链接到的问题问的是“如何检测脚本是否被引用”,但这个问题是问“如何创建一个既可以被引用又可以作为脚本运行的bash脚本”。对于这个问题的回答可能会使用前一个问题的一些方面,但还有其他要求/问题,如下:
- 一旦您检测到脚本正在被引用,最好的方法是不运行脚本(除了导入所需函数之外),以避免意外副作用,例如添加/删除/修改环境/变量)
- 一旦您检测到脚本正在运行而不是被引用,实现脚本的规范方式是什么(将其放入一个函数中?或者只是在if语句后面放置它?如果将其放在if语句后面,它会有副作用吗?
- 我发现大多数关于Bash的谷歌搜索都没有涵盖这个主题(既可以被引用又可以执行的Bash脚本),实现此功能的规范方式是什么?这个主题没有被涵盖是因为不鼓励或者说不好吗?有需要注意的问题吗?
script1.sh
的脚本,其中包含一个名为xyz()
的函数,我想在另一个脚本script2.sh
中使用它。当我从script2
中源代码script1
时,script1
会以某种方式退出,这会阻止我在script2
中调用xyz()
。(关于我提到的Python位的很好的解释在此提供here) - Trevor Boyd Smith