#!与路径首字符间允许空格吗?特殊语言下Shebang适配问询
带空格的Shebang语句是否有效?
我使用的编程语言中,#不会触发注释功能,所以需要找到办法处理首行的Shebang语句来避免报错。考虑用这种在#!后添加空格的写法:
#! /usr/path/to/the/bin/to/call/to/run/me
替代标准的Shebang写法:
#!/usr/path/to/the/bin/to/call/to/run/me
我目前没有Linux环境可以自行测试,想问这种带空格的Shebang是否有效?
这种带空格的写法是有效的。Linux内核解析Shebang时,会自动忽略#!之后的第一个空格,识别后面的可执行文件路径。只要路径指向正确的可执行程序,系统就能正常调用对应的解释器运行脚本。
不过需要额外注意:由于你所用的语言不会把#当作注释符号,得确认加空格后的首行不会被该语言解析为无效语法。比如如果语言会把#! /xxx当成合法代码执行,可能还是会出问题,但从系统层面的Shebang解析逻辑来说,这种写法完全可行。
内容的提问来源于stack exchange,提问作者S. Gougeon
相关产品推荐
相关产品推荐

