我从" Scala编程 "一书中了解到,我可以通过编写以下内容来启动scala脚本:
#!/bin/sh
exec scala "$0" "$@"
!#
println("hello world")
Run Code Online (Sandbox Code Playgroud)
没关系,但我也试过这种风格:
#!/usr/bin/env scala
!#
println("hello world")
Run Code Online (Sandbox Code Playgroud)
并发现这个也运行正常.
所以我不知道两者之间有什么区别.
并且,如果两者都好,为什么这本书选择前一个来展示,哪个看起来更长一点?
他们是等同的.不同之处在于后者运行shell进程来启动Scala解释器,而前者使用env程序,它比shell更轻量级,显然不需要在单个文件中混合shell代码和Scala(这可能会让人不安)你的编辑器和其他工具).