如何用shebang定义脚本解释器

Ger*_*ely 6 unix linux bash sml

很明显,人们可以使用

#!/usr/bin/perl
Run Code Online (Sandbox Code Playgroud)

shebang符号在脚本的第一行定义解释器.但是,这预先假定一个解释器忽略了散列标记起始行作为注释.如何使用没有此功能的解释器?

hol*_*ero 4

使用包装器删除第一行并使用文件的其余部分调用真正的解释器。它可能看起来像这样:

#!/bin/sh

# set your "real" interpreter here, or use cat for debugging
REALINTERP="cat"

tail -n +2 $1 | $REALINTERP
Run Code Online (Sandbox Code Playgroud)

除此之外:在某些情况下,忽略有关第一行的错误消息可能是一种选择。

最后的手段:将解释器的注释字符添加到内核中的代码支持。