Bash别名和点文件

Bash别名和点文件,bash,dotfiles,aliases,Bash,Dotfiles,Aliases,我最近在一个有别名的文件的顶部遇到了这个#-*-sh-*-。它是某人bash目录中的dotfiles的一部分,到目前为止,我从未见过它。那么,这是什么?它与使用shebang有何不同?我试着在谷歌上搜索其他的搜索引擎来代替shebang,但是没有找到任何东西可以给我一个关于上面是什么的提示 具有别名定义的文件不需要shebang行,因为单独执行这些行不会将定义添加到当前shell,而当前shell就是别名定义的点 相反,具有别名定义的文件必须是源文件(在当前shell的上下文中运行,使用sour

我最近在一个有别名的文件的顶部遇到了这个
#-*-sh-*-
。它是某人bash目录中的dotfiles的一部分,到目前为止,我从未见过它。那么,这是什么?它与使用shebang有何不同?我试着在谷歌上搜索其他的搜索引擎来代替shebang,但是没有找到任何东西可以给我一个关于上面是什么的提示

具有别名定义的文件不需要shebang行,因为单独执行这些行不会将定义添加到当前shell,而当前shell就是别名定义的点

相反,具有别名定义的文件必须是源文件(在当前shell的上下文中运行,使用
source


因此,您看到的只是一条普通的注释,它指示了文件的设计来源是什么特定的shell(
sh
)。

shebang是一个神奇的数字(本质上)告诉bash,下面的脚本应该由指定的可执行文件解释,而不是通过bash执行(或无论当前shell是什么)。更多信息: