Answers:
是的,这是允许的。
Wikipedia上有关shebang的文章 包括Dennis Ritchie于1980年发送的一封电子邮件,当时他将对shebang的内核支持(作为更广泛的解释器指令包的一部分)引入版本8 Unix(重点是我的):
系统已更改,因此,如果正在执行的文件以魔术字符开头,则
#!
该行的其余部分应理解为已执行文件的解释器的名称。[…]要利用这个难得的机会,
#! /bin/sh
在您的Shell脚本第一行的左边距处。 之后
!
的空格就可以了。
因此,shebang之后的空间已经存在了很长一段时间,确实,Dennis Ritchie的示例正在使用它们。
请注意,Unix的早期版本在此解释器行中的字符数限制为16个,因此那里不能有任意数量的空格。此限制不再适用于现代内核。
是的,#!
。之后允许空白。甚至有人(错误)认为某些系统可能需要它,但是它始终只是可选的。
如需进一步阅读,请在这里