Pat*_*ick 2 bash shell shebang
如果我在我的主脚本(有shebang)中包含了一个配置文件(shell脚本中的变量定义)或库文件(具有常见的函数定义),那么我是否还需要一个shebang用于该配置shell脚本?
编辑:我使用包含配置文件.或源主文件包含#!/ bin/sh shebang.
取决于你如何称呼它.然后使用source或.命令no,如果仅使用脚本名称将它们作为子进程调用,则为yes.
根据您的描述,您正在"搜索"文件,所以不,#!只是一个评论.从这些文件中删除执行访问权限也是谨慎的,因此它们不会被无意中称为子进程.
(如果它们不是"来源"那么定义只会在子进程中发生并且无用)
编辑@triplee评论:
可以使用(例如)sh filename,bash filename甚至(shudder)将它们作为子进程调用csh filename.所有这些shell都有差异,因此行的一个优点#!是作为注释指示代码所针对的shell类型.我不会这样做,因为它也暗示它可以作为一个孩子运行.我确定你已经充分评论了你的代码,但是可能值得添加注释来指示shell.