我正在阅读Script it!的Getting Started with Scala部分。它包括以下示例:
#!/bin/sh
exec scala "$0" "$@"
!#
object HelloWorld extends App {
println("Hello, world!")
}
HelloWorld.main(args)
我的问题是:为什么#!/bin/sh
+ exec
?我们不能只使用#!/usr/bin/env scala
作为shebang吗?
这就是我们用许多其他语言做的事情:Perl,Python,Node,......它有什么问题?
更新:此问题与#!/usr/bin/env scala
是否有效无关。它是有效的,如果你不相信任何原因,试试吧。这个问题是关于为什么#!/bin/sh
方式被推荐/记录,而另一个不是。毕竟,#!/usr/bin/env <something>
是所有其他语言的事实上的标准。
使用#!/usr/bin/env scala
会丢失一些功能吗? (当然,除了在启动Scala之前运行任意shell脚本的能力之外。)