8

我从Programming in Scala一书中了解到,我可以通过编写以下内容来启动 scala 脚本:

#!/bin/sh
exec scala "$0" "$@"
!#
println("hello world")

没关系,但我也尝试过这种风格:

#!/usr/bin/env scala
!#
println("hello world")

并发现这个也运行正常。
所以我不知道两者之间有什么区别。
而且,如果两者都可以,为什么本书选择前一个来演示,看起来有点长?

4

1 回答 1

5

它们是等价的。不同之处在于后者运行一个shell进程来启动Scala解释器,而前者使用env程序,它比shell更轻量级,并且显然不需要将shell代码和Scala混合在一个文件中(这可能会扰乱您的编辑器和其他工具)。

于 2012-12-25T13:24:51.493 回答