如果我们要在语法上指定shell脚本的某些部分,那么shebang应该放在哪里,这是注释的特例吗?
答案 0 :(得分:8)
shebang根本没有通过shell语法(对于基线POSIX sh标准,或者特别是在bash中)进行特殊处理。也就是说:这不是对shell进行注释的特例;相反,到外壳,这是完全正常的,沼泽标准的注释,没有任何特殊处理。
请参见https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_10_02的正式语法;射手没有什么特别的。
当操作系统(通过execve()
系统调用定向启动新程序)试图查找时,唯一的特殊处理是在外壳启动之前完成的。一个解释器(无论是shell还是其他东西),使用该解释器来调用可执行文件以替换以前与活动PID相关联的过程映像。