我最近在文件顶部遇到了# -*- sh -*-
,其中包含别名。它是bash目录中某人的dotfiles的一部分,直到现在,我以前从未见过它。那么,这是什么以及它与使用shebang有何不同?我尝试用谷歌搜索一个shebang的替代品,但没想出任何能让我暗示上面是什么的东西。
答案 0 :(得分:6)
带别名定义的文件不需要shebang行,因为独立执行它们不会将定义添加到当前 shell,这是别名定义的要点
相反,具有别名定义的文件必须 sourced (在当前 shell的上下文中运行,source
或.
)。
因此,您所看到的只是一个普通的注释,它指示文件设计来源的具体shell(sh
)。